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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bscnat: Introduce test TC_ctrl_location<br><br>It checks location-state TRAP is forwaded correctly in BSC-NAT from BSC<br>towards locally connected CTRL client, with variable names updated to<br>contain BSC/BTS indexes.<br>It also verifies commands can be applied (SET) in inverse direction.<br><br>Change-Id: If28aba011a1903788cacbc10c0b62954925d4b1f<br>---<br>M bsc-nat/BSCNAT_Tests.ttcn<br>M bsc-nat/BSC_MS_ConnectionHandler.ttcn<br>M bsc-nat/BSC_MS_Simulation.ttcn<br>M bsc-nat/gen_links.sh<br>M bsc-nat/regen_makefile.sh<br>5 files changed, 60 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc-nat/BSCNAT_Tests.ttcn b/bsc-nat/BSCNAT_Tests.ttcn</span><br><span>index 81afcfa..9d2fc4b 100644</span><br><span>--- a/bsc-nat/BSCNAT_Tests.ttcn</span><br><span>+++ b/bsc-nat/BSCNAT_Tests.ttcn</span><br><span>@@ -20,6 +20,10 @@</span><br><span> </span><br><span> import from MTP3asp_Types all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Functions all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> import from SCCP_Types all;</span><br><span> import from SCCPasp_Types all;</span><br><span> import from SCCP_Emulation all;</span><br><span>@@ -48,7 +52,7 @@</span><br><span>       SCCP_PAR_Address sccp_addr_own</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type component test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+type component test_CT extends CTRL_Adapter_CT {</span><br><span>    var MscState msc[NUM_MSC];</span><br><span>   var BscState bsc[NUM_BSC];</span><br><span> </span><br><span>@@ -65,6 +69,9 @@</span><br><span>   PortNumber mp_msc_port := 5000;</span><br><span>      charstring mp_msc_ip := "127.0.0.1";</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    /* port number to which to establish the IPA CTRL connection */</span><br><span style="color: hsl(120, 100%, 40%);">+       integer mp_nat_ctrl_port := 4250;</span><br><span style="color: hsl(120, 100%, 40%);">+     /* port number to which to establish the SCCPLite connection */</span><br><span>      PortNumber mp_nat_port := 5000;</span><br><span>      charstring mp_nat_ip := "127.0.0.1";</span><br><span> </span><br><span>@@ -144,6 +151,7 @@</span><br><span> </span><br><span>         f_init_vty("VirtBSCNAT");</span><br><span>  f_vty_allow_osmux(use_osmux);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ipa_ctrl_start(mp_nat_ip, mp_nat_ctrl_port);</span><br><span> </span><br><span>   for (i := 0; i < NUM_MSC; i := i+1) {</span><br><span>             f_init_MscState(msc[i], mp_msc_pc +i, mp_bsc_pc, mp_msc_ssn, mp_bsc_ssn);</span><br><span>@@ -206,9 +214,26 @@</span><br><span>     f_TC_recv_dump(true);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_ctrl_location() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ timer T := 30.0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    f_init(refers(bsc_ms_do_nothing),</span><br><span style="color: hsl(120, 100%, 40%);">+            refers(bsc_ctrl_location),</span><br><span style="color: hsl(120, 100%, 40%);">+            refers(CreateCallback_establish_fully),</span><br><span style="color: hsl(120, 100%, 40%);">+               false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      f_ctrl_exp_trap(IPA_CTRL, "net.0.bsc.0.bts.0.location-state",</span><br><span style="color: hsl(120, 100%, 40%);">+                       "1234567,fix3d,0.340000,0.560000,0.780000,operational,unlocked,on,001,01",</span><br><span style="color: hsl(120, 100%, 40%);">+                  10.0);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_ctrl_set(IPA_CTRL, "net.0.bsc.0.rf_locked", "1");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     f_wait_finish(T);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> control {</span><br><span>  execute( TC_recv_dump() );</span><br><span>   execute( TC_recv_dump_osmux() );</span><br><span style="color: hsl(120, 100%, 40%);">+      execute( TC_ctrl_location() );</span><br><span> }</span><br><span> </span><br><span> }</span><br><span>diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn</span><br><span>index f7126fd..f011c39 100644</span><br><span>--- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn</span><br><span>+++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn</span><br><span>@@ -210,4 +210,8 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+function bsc_ms_do_nothing(charstring id)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on BSC_MS_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> }</span><br><span>diff --git a/bsc-nat/BSC_MS_Simulation.ttcn b/bsc-nat/BSC_MS_Simulation.ttcn</span><br><span>index 7f23318..453f304 100644</span><br><span>--- a/bsc-nat/BSC_MS_Simulation.ttcn</span><br><span>+++ b/bsc-nat/BSC_MS_Simulation.ttcn</span><br><span>@@ -14,6 +14,9 @@</span><br><span> </span><br><span> import from IPA_Emulation all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Functions all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Osmocom_CTRL_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> import from SCCP_Types all;</span><br><span> import from SCCPasp_Types all;</span><br><span> import from SCCP_Emulation all;</span><br><span>@@ -33,6 +36,8 @@</span><br><span>        var RAN_Emulation_CT vc_BSSMAP;</span><br><span>      /* test port to SCCP emulation */</span><br><span>    port SCCPasp_PT SCCP;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* test port to SCCPLite CTRL over IPA emulation */</span><br><span style="color: hsl(120, 100%, 40%);">+   port IPA_CTRL_PT SCCPLITE_IPA_CTRL;</span><br><span> </span><br><span>      var BSC_MS_TestHdlrParams g_pars;</span><br><span> </span><br><span>@@ -71,6 +76,15 @@</span><br><span> runs on BSC_CT {</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Submit a location-state TRAP BSC->BSC-NAT */</span><br><span style="color: hsl(120, 100%, 40%);">+function bsc_ctrl_location(charstring id)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on BSC_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      log("Starting main of BSC_CT");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ctrl_trap(SCCPLITE_IPA_CTRL, "bts.0.location-state",</span><br><span style="color: hsl(120, 100%, 40%);">+                  "1234567,fix3d,0.340000,0.560000,0.780000,operational,unlocked,on,001,01");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ctrl_exp_set(SCCPLITE_IPA_CTRL, "rf_locked", "1", "1");</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> function main(charstring remote_ip, PortNumber remote_port,</span><br><span>          charstring local_ip, PortNumber local_port,</span><br><span>          MSC_SCCP_MTP3_parameters sccp_pars,</span><br><span>@@ -78,7 +92,7 @@</span><br><span>              void_fn_bsc_ms fn_bsc_ms, void_fn_bsc fn_bsc, charstring id) runs on BSC_CT</span><br><span> {</span><br><span>     var integer i := 0;</span><br><span style="color: hsl(0, 100%, 40%);">-     timer T := 1.0;</span><br><span style="color: hsl(120, 100%, 40%);">+       timer T := 2.0;</span><br><span>      var IPA_CCM_Parameters ccm_pars := IPA_Emulation.c_IPA_default_ccm_pars;</span><br><span>     ccm_pars.name := id;</span><br><span>         g_pars := pars;</span><br><span>@@ -98,6 +112,11 @@</span><br><span> </span><br><span>    /* connect BSSMAP dispatcher to IPA_Emulation MGCP */</span><br><span>        connect(vc_BSSMAP:MGCP, vc_IPA:IPA_MGCP_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+        /* connect BSSMAP dispatcher to IPA_Emulation CTRL */</span><br><span style="color: hsl(120, 100%, 40%);">+ connect(vc_BSSMAP:CTRL, vc_IPA:IPA_CTRL_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* connect BSSMAP dispatcher to IPA_Emulation CTRL */</span><br><span style="color: hsl(120, 100%, 40%);">+ connect(self:SCCPLITE_IPA_CTRL, vc_BSSMAP:CTRL_CLIENT);</span><br><span> </span><br><span>  /* start components */</span><br><span>       vc_IPA.start(IPA_Emulation.main_client(remote_ip, remote_port, local_ip, local_port, ccm_pars));</span><br><span>@@ -105,8 +124,14 @@</span><br><span>      vc_BSSMAP.start(RAN_Emulation.main(BSC_MS_ConnectionHandler.BSC_MS_RanOps, id));</span><br><span> </span><br><span>         /* Initial delay to wait for IPA connection establishment */</span><br><span style="color: hsl(0, 100%, 40%);">-    T.start(2.0);</span><br><span style="color: hsl(0, 100%, 40%);">-   T.timeout;</span><br><span style="color: hsl(120, 100%, 40%);">+    T.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] SCCPLITE_IPA_CTRL.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { }</span><br><span style="color: hsl(120, 100%, 40%);">+ [] T.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP");</span><br><span style="color: hsl(120, 100%, 40%);">+              mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        var BSC_MS_ConnHdlrList vc_conns;</span><br><span>    for (i := 0; i < mp_num_iterations; i := i+1) {</span><br><span>diff --git a/bsc-nat/gen_links.sh b/bsc-nat/gen_links.sh</span><br><span>index 01d4c7b..5da9d4e 100755</span><br><span>--- a/bsc-nat/gen_links.sh</span><br><span>+++ b/bsc-nat/gen_links.sh</span><br><span>@@ -52,7 +52,7 @@</span><br><span> gen_links $DIR $FILES</span><br><span> </span><br><span> DIR=../library</span><br><span style="color: hsl(0, 100%, 40%);">-FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn 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 MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc Osmocom_CTRL_Types.ttcn Osmocom_VTY_Functions.ttcn Osmocom_CTRL_Functions.ttcn BSSAP_CodecPort.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn 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 MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc Osmocom_CTRL_Types.ttcn Osmocom_VTY_Functions.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn BSSAP_CodecPort.ttcn"</span><br><span> gen_links $DIR $FILES</span><br><span> </span><br><span> ignore_pp_results</span><br><span>diff --git a/bsc-nat/regen_makefile.sh b/bsc-nat/regen_makefile.sh</span><br><span>index 0f3cfab..c9d744e 100755</span><br><span>--- a/bsc-nat/regen_makefile.sh</span><br><span>+++ b/bsc-nat/regen_makefile.sh</span><br><span>@@ -4,6 +4,6 @@</span><br><span> </span><br><span> FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc TELNETasp_PT.cc"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-export CPPFLAGS_TTCN3="-DIPA_EMULATION_SCCP -DIPA_EMULATION_MGCP -DRAN_EMULATION_BSSAP -DRAN_EMULATION_MGCP -DUSE_MTP3_DISTRIBUTOR"</span><br><span style="color: hsl(120, 100%, 40%);">+export CPPFLAGS_TTCN3="-DIPA_EMULATION_SCCP -DIPA_EMULATION_MGCP -DIPA_EMULATION_CTRL -DRAN_EMULATION_BSSAP -DRAN_EMULATION_MGCP -DRAN_EMULATION_CTRL -DUSE_MTP3_DISTRIBUTOR"</span><br><span> </span><br><span> ../regen-makefile.sh $MAIN $FILES</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14414">change 14414</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/+/14414"/><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: If28aba011a1903788cacbc10c0b62954925d4b1f </div>
<div style="display:none"> Gerrit-Change-Number: 14414 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>