<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13650">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Rename BSSMAP_Emulation -> RAN_Emulation<br><br>So far, BSSMAP_Emulation supported only a transport over BSSMAP.<br>However, we soon intend to merge support for RANAP in order to<br>simulate RANAP/Iu connections as well as BSSMAP.  Let's start<br>by renaming some of the existing types/functions/ports/modules<br>without introducing any functional changes just yet.<br><br>Related: OS#2857, OS#2856<br>Change-Id: Iecbcb0c6c136baad9460eca40606bb4010d8882d<br>---<br>M bsc-nat/BSC_MS_ConnectionHandler.ttcn<br>M bsc-nat/BSC_MS_Simulation.ttcn<br>M bsc-nat/MSC_ConnectionHandler.ttcn<br>M bsc-nat/MSC_Simulation.ttcn<br>M bsc-nat/gen_links.sh<br>M bsc/BSC_Tests.ttcn<br>M bsc/BSC_Tests_LCLS.ttcn<br>M bsc/MSC_ConnectionHandler.ttcn<br>M bsc/gen_links.sh<br>R library/RAN_Adapter.ttcn<br>R library/RAN_Emulation.ttcn<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>M msc/gen_links.sh<br>14 files changed, 228 insertions(+), 230 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/50/13650/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn</span><br><span>index 27e1b58..63d0451 100644</span><br><span>--- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn</span><br><span>+++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn</span><br><span>@@ -5,7 +5,7 @@</span><br><span> import from SCCPasp_Types all;</span><br><span> import from BSSAP_Types all;</span><br><span> import from BSSAP_CodecPort all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> </span><br><span> import from MobileL3_Types all;</span><br><span>@@ -17,9 +17,9 @@</span><br><span> import from SDP_Types all;</span><br><span> </span><br><span> /* this component represents a single subscriber connection at the MSC.</span><br><span style="color: hsl(0, 100%, 40%);">- * There is a 1:1 mapping between SCCP connections and BSSAP_ConnHdlr components.</span><br><span style="color: hsl(0, 100%, 40%);">- * We inherit all component variables, ports, functions, ... from BSSAP_ConnHdlr */</span><br><span style="color: hsl(0, 100%, 40%);">-type component BSC_MS_ConnHdlr extends BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+ * There is a 1:1 mapping between SCCP connections and RAN_ConnHdlr components.</span><br><span style="color: hsl(120, 100%, 40%);">+ * We inherit all component variables, ports, functions, ... from RAN_ConnHdlr */</span><br><span style="color: hsl(120, 100%, 40%);">+type component BSC_MS_ConnHdlr extends RAN_ConnHdlr {</span><br><span>         /* SCCP Connecction Identifier for the underlying SCCP connection */</span><br><span>         var integer g_sccp_conn_id;</span><br><span>  var MgcpConnectionId g_mgcp_conn_id;</span><br><span>@@ -27,18 +27,18 @@</span><br><span>   var BSC_State g_state;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Callback function from general BSSMAP_Emulation whenever a new incoming</span><br><span style="color: hsl(120, 100%, 40%);">+/* Callback function from general RAN_Emulation whenever a new incoming</span><br><span>  * SCCP connection arrivces. Must create + start a new component */</span><br><span> private function CreateCallback(BSSAP_N_CONNECT_ind conn_ind, charstring id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span>         log("Incoming SCCP Connection on BSC ?!?");</span><br><span>        self.stop;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Callback function from general BSSMAP_Emulation whenever a connectionless</span><br><span style="color: hsl(120, 100%, 40%);">+/* Callback function from general RAN_Emulation whenever a connectionless</span><br><span>  * BSSMAP message arrives.  Can retunr a PDU_BSSAP that should be sent in return */</span><br><span> private function UnitdataCallback(PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return template PDU_BSSAP {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return template PDU_BSSAP {</span><br><span>         var template PDU_BSSAP resp := omit;</span><br><span> </span><br><span>     if (match(bssap, tr_BSSMAP_Reset)) {</span><br><span>@@ -48,7 +48,7 @@</span><br><span>     return resp;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-const BssmapOps BSC_MS_BssmapOps := {</span><br><span style="color: hsl(120, 100%, 40%);">+const RanOps BSC_MS_RanOps := {</span><br><span>  create_cb := refers(CreateCallback),</span><br><span>         unitdata_cb := refers(UnitdataCallback),</span><br><span>     decode_dtap := false,</span><br><span>@@ -154,16 +154,16 @@</span><br><span>                        log("Unhandled DTAP ", l3);</span><br><span>                        }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span style="color: hsl(120, 100%, 40%);">+          [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span>                   setverdict(pass);</span><br><span>                    self.stop;</span><br><span>                   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {</span><br><span style="color: hsl(120, 100%, 40%);">+            [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {</span><br><span>                     }</span><br><span> </span><br><span>                /* disconnect in invalid state */</span><br><span style="color: hsl(0, 100%, 40%);">-               [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span style="color: hsl(120, 100%, 40%);">+            [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span>                     setverdict(fail);</span><br><span>                    self.stop;</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 2f1961b..c45b5ac 100644</span><br><span>--- a/bsc-nat/BSC_MS_Simulation.ttcn</span><br><span>+++ b/bsc-nat/BSC_MS_Simulation.ttcn</span><br><span>@@ -9,7 +9,7 @@</span><br><span> import from SCCP_Emulation all;</span><br><span> </span><br><span> import from BSSAP_CodecPort all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> </span><br><span> import from BSC_MS_ConnectionHandler all;</span><br><span> </span><br><span>@@ -17,7 +17,7 @@</span><br><span>        /* component references */</span><br><span>   var IPA_Emulation_CT vc_IPA;</span><br><span>         var SCCP_CT vc_SCCP;</span><br><span style="color: hsl(0, 100%, 40%);">-    var BSSMAP_Emulation_CT vc_BSSMAP;</span><br><span style="color: hsl(120, 100%, 40%);">+    var RAN_Emulation_CT vc_BSSMAP;</span><br><span>      /* test port to SCCP emulation */</span><br><span>    port SCCPasp_PT SCCP;</span><br><span> </span><br><span>@@ -48,7 +48,7 @@</span><br><span>        /* create components for IPA/SCCP/BSS[M]AP stack */</span><br><span>  vc_IPA := IPA_Emulation_CT.create(id & "-IPA");</span><br><span>        vc_SCCP := SCCP_CT.create(id & "-SCCP");</span><br><span style="color: hsl(0, 100%, 40%);">-  vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");</span><br><span style="color: hsl(120, 100%, 40%);">+        vc_BSSMAP := RAN_Emulation_CT.create(id & "-BSSMAP");</span><br><span> </span><br><span>      map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);</span><br><span> </span><br><span>@@ -64,7 +64,7 @@</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>     vc_SCCP.start(SCCPStart(sccp_pars));</span><br><span style="color: hsl(0, 100%, 40%);">-    vc_BSSMAP.start(BSSMAP_Emulation.main(BSC_MS_ConnectionHandler.BSC_MS_BssmapOps, id));</span><br><span style="color: hsl(120, 100%, 40%);">+        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>         T.start(2.0);</span><br><span>diff --git a/bsc-nat/MSC_ConnectionHandler.ttcn b/bsc-nat/MSC_ConnectionHandler.ttcn</span><br><span>index 27fbba7..383b67b 100644</span><br><span>--- a/bsc-nat/MSC_ConnectionHandler.ttcn</span><br><span>+++ b/bsc-nat/MSC_ConnectionHandler.ttcn</span><br><span>@@ -5,7 +5,7 @@</span><br><span> import from SCCPasp_Types all;</span><br><span> import from BSSAP_Types all;</span><br><span> import from BSSAP_CodecPort all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> </span><br><span> import from MGCP_Types all;</span><br><span>@@ -13,9 +13,9 @@</span><br><span> import from SDP_Types all;</span><br><span> </span><br><span> /* this component represents a single subscriber connection at the MSC.</span><br><span style="color: hsl(0, 100%, 40%);">- * There is a 1:1 mapping between SCCP connections and BSSAP_ConnHdlr components.</span><br><span style="color: hsl(0, 100%, 40%);">- * We inherit all component variables, ports, functions, ... from BSSAP_ConnHdlr */</span><br><span style="color: hsl(0, 100%, 40%);">-type component MSC_ConnHdlr extends BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+ * There is a 1:1 mapping between SCCP connections and RAN_ConnHdlr components.</span><br><span style="color: hsl(120, 100%, 40%);">+ * We inherit all component variables, ports, functions, ... from RAN_ConnHdlr */</span><br><span style="color: hsl(120, 100%, 40%);">+type component MSC_ConnHdlr extends RAN_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>@@ -28,10 +28,10 @@</span><br><span> /* Callback function from general BSSMAP_Emulation whenever a new incoming</span><br><span>  * SCCP connection arrivces. Must create + start a new component */</span><br><span> private function CreateCallback(BSSAP_N_CONNECT_ind conn_ind, charstring id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span>        var MSC_ConnHdlr vc_conn;</span><br><span style="color: hsl(0, 100%, 40%);">-       /* Create a new BSSAP_ConnHdlr component */</span><br><span style="color: hsl(0, 100%, 40%);">-     vc_conn := MSC_ConnHdlr.create(g_bssmap_id & "-Conn-" & int2str(conn_ind.connectionId));</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Create a new RAN_ConnHdlr component */</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := MSC_ConnHdlr.create(g_ran_id & "-Conn-" & int2str(conn_ind.connectionId));</span><br><span>      /* connect it to the port */</span><br><span>         connect(vc_conn:BSSAP, self:CLIENT);</span><br><span>         /* start it */</span><br><span>@@ -44,7 +44,7 @@</span><br><span> /* Callback function from general BSSMAP_Emulation whenever a connectionless</span><br><span>  * BSSMAP message arrives.  Can retunr a PDU_BSSAP that should be sent in return */</span><br><span> private function UnitdataCallback(PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return template PDU_BSSAP {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return template PDU_BSSAP {</span><br><span>         var template PDU_BSSAP resp := omit;</span><br><span> </span><br><span>     if (match(bssap, tr_BSSMAP_Reset)) {</span><br><span>@@ -54,7 +54,7 @@</span><br><span>     return resp;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-const BssmapOps MSC_BssmapOps := {</span><br><span style="color: hsl(120, 100%, 40%);">+const RanOps MSC_RanOps := {</span><br><span>        create_cb := refers(CreateCallback),</span><br><span>         unitdata_cb := refers(UnitdataCallback),</span><br><span>     decode_dtap := false,</span><br><span>@@ -129,14 +129,14 @@</span><br><span>                        }</span><br><span> </span><br><span>                [g_state == MSC_STATE_WAIT_DLCX_ACK] BSSAP.receive(tr_DLCX_ACK) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       BSSAP.send(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span style="color: hsl(120, 100%, 40%);">+                   BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span>                    setverdict(pass);</span><br><span>                    self.stop;</span><br><span>                   }</span><br><span> </span><br><span>                /* TODO: CLEAR REQUEST from BSS */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-          [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span style="color: hsl(120, 100%, 40%);">+            [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span>                     setverdict(fail);</span><br><span>                    self.stop;</span><br><span>                   }</span><br><span>@@ -147,7 +147,7 @@</span><br><span> </span><br><span>          /* Guard timer has expired, close connection */</span><br><span>              [] T.timeout {</span><br><span style="color: hsl(0, 100%, 40%);">-                  BSSAP.send(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span style="color: hsl(120, 100%, 40%);">+                   BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span>                    setverdict(fail, "Timeout of guard timer");</span><br><span>                        self.stop;</span><br><span>                   }</span><br><span>diff --git a/bsc-nat/MSC_Simulation.ttcn b/bsc-nat/MSC_Simulation.ttcn</span><br><span>index 0a13509..bc47f89 100755</span><br><span>--- a/bsc-nat/MSC_Simulation.ttcn</span><br><span>+++ b/bsc-nat/MSC_Simulation.ttcn</span><br><span>@@ -16,7 +16,7 @@</span><br><span> import from BSSAP_Types all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> */</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> </span><br><span> import from MGCP_Adapter all;</span><br><span> </span><br><span>@@ -26,7 +26,7 @@</span><br><span>      /* component references */</span><br><span>   var IPA_Emulation_CT vc_IPA;</span><br><span>         var SCCP_CT vc_SCCP;</span><br><span style="color: hsl(0, 100%, 40%);">-    var BSSMAP_Emulation_CT vc_BSSMAP;</span><br><span style="color: hsl(120, 100%, 40%);">+    var RAN_Emulation_CT vc_BSSMAP;</span><br><span>      var MGCP_Adapter_CT vc_MGCP_UDP;</span><br><span>     /* test port to SCCP emulation */</span><br><span>    port SCCPasp_PT SCCP;</span><br><span>@@ -43,7 +43,7 @@</span><br><span>    /* create components */</span><br><span>      vc_IPA := IPA_Emulation_CT.create(id & "-IPA");</span><br><span>        vc_SCCP := SCCP_CT.create(id & "-SCCP");</span><br><span style="color: hsl(0, 100%, 40%);">-  vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");</span><br><span style="color: hsl(120, 100%, 40%);">+        vc_BSSMAP := RAN_Emulation_CT.create(id & "-BSSMAP");</span><br><span> </span><br><span>      map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);</span><br><span> </span><br><span>@@ -64,7 +64,7 @@</span><br><span> </span><br><span>       vc_IPA.start(IPA_Emulation.main_server(local_ip, local_port));</span><br><span>       vc_SCCP.start(SCCPStart(sccp_pars));</span><br><span style="color: hsl(0, 100%, 40%);">-    vc_BSSMAP.start(BSSMAP_Emulation.main(MSC_ConnectionHandler.MSC_BssmapOps, id & "-BSSMAP"));</span><br><span style="color: hsl(120, 100%, 40%);">+    vc_BSSMAP.start(RAN_Emulation.main(MSC_ConnectionHandler.MSC_RanOps, id & "-BSSMAP"));</span><br><span> </span><br><span>     /* wait until termination of respective components */</span><br><span>        vc_IPA.done;</span><br><span>diff --git a/bsc-nat/gen_links.sh b/bsc-nat/gen_links.sh</span><br><span>index 1ab54f1..e54eec4 100755</span><br><span>--- a/bsc-nat/gen_links.sh</span><br><span>+++ b/bsc-nat/gen_links.sh</span><br><span>@@ -47,7 +47,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 BSSMAP_Emulation.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc Osmocom_CTRL_Types.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.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.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/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn</span><br><span>index 1e89cf3..720669b 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -24,7 +24,7 @@</span><br><span> import from IPL4asp_Types all;</span><br><span> </span><br><span> import from BSSAP_Types all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSAP_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Adapter 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>@@ -82,7 +82,7 @@</span><br><span>  var MGCP_Emulation_CT vc_MGCP;</span><br><span>       port TELNETasp_PT BSCVTY;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   var BSSAP_Adapter g_bssap;</span><br><span style="color: hsl(120, 100%, 40%);">+    var RAN_Adapter g_bssap;</span><br><span>     /* for old legacy-tests only */</span><br><span>      port BSSAP_CODEC_PT BSSAP;</span><br><span> </span><br><span>@@ -106,7 +106,7 @@</span><br><span>         /* IP address at which the test binds */</span><br><span>     charstring mp_test_ip := "127.0.0.1";</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     BSSAP_Configuration mp_bssap_cfg := {</span><br><span style="color: hsl(120, 100%, 40%);">+ RAN_Configuration mp_bssap_cfg := {</span><br><span>          transport := BSSAP_TRANSPORT_AoIP,</span><br><span>           sccp_service_type := "mtp3_itu",</span><br><span>           sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" },</span><br><span>@@ -313,10 +313,10 @@</span><br><span>  T_guard.start;</span><br><span>       activate(as_Tguard());</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      /* Call a function of our 'parent component' BSSAP_Adapter_CT to start the</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Call a function of our 'parent component' RAN_Adapter_CT to start the</span><br><span>      * MSC-side BSSAP emulation */</span><br><span>       if (handler_mode) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_bssap_init(g_bssap, mp_bssap_cfg, "VirtMSC", MSC_BssmapOps);</span><br><span style="color: hsl(120, 100%, 40%);">+              f_bssap_init(g_bssap, mp_bssap_cfg, "VirtMSC", MSC_RanOps);</span><br><span>                f_bssap_start(g_bssap);</span><br><span>      } else {</span><br><span>             f_bssap_init(g_bssap, mp_bssap_cfg, "VirtMSC", omit);</span><br><span>@@ -1625,10 +1625,10 @@</span><br><span> </span><br><span> </span><br><span> /***********************************************************************</span><br><span style="color: hsl(0, 100%, 40%);">- * "New world" test cases using RSL_Emulation + BSSMAP_Emulation</span><br><span style="color: hsl(120, 100%, 40%);">+ * "New world" test cases using RSL_Emulation + RAN_Emulation</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> import from RSL_Emulation all;</span><br><span> import from MSC_ConnectionHandler all;</span><br><span> </span><br><span>@@ -1636,7 +1636,7 @@</span><br><span> </span><br><span> /* helper function to create and connect a MSC_ConnHdlr component */</span><br><span> private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-      connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+    connect(vc_conn:RAN, g_bssap.vc_RAN:PROC);</span><br><span>   connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC);</span><br><span>       connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT);</span><br><span>   connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC);</span><br><span>@@ -1644,7 +1644,7 @@</span><br><span>               connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT);</span><br><span>          connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC);</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT);</span><br><span style="color: hsl(120, 100%, 40%);">+     connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT);</span><br><span>       connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT);</span><br><span> }</span><br><span> </span><br><span>@@ -3096,7 +3096,7 @@</span><br><span> </span><br><span>     BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,</span><br><span>                                f_gen_handover_req()));</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span> </span><br><span>     /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */</span><br><span> </span><br><span>@@ -3168,7 +3168,7 @@</span><br><span> </span><br><span>  BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,</span><br><span>                                f_gen_handover_req()));</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span> </span><br><span>     /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */</span><br><span> </span><br><span>@@ -3253,7 +3253,7 @@</span><br><span> </span><br><span>  BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,</span><br><span>                                f_gen_handover_req()));</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span> </span><br><span>     /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */</span><br><span> </span><br><span>@@ -3339,7 +3339,7 @@</span><br><span> </span><br><span>  BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,</span><br><span>                                f_gen_handover_req()));</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span> </span><br><span>     /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */</span><br><span> </span><br><span>@@ -3430,7 +3430,7 @@</span><br><span> </span><br><span>  BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,</span><br><span>                                f_gen_handover_req()));</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);</span><br><span> </span><br><span>     /* The RSL Emulation magically accepts the Chan Activ behind the scenes. */</span><br><span> </span><br><span>diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn</span><br><span>index 67ccecf..f2b9b5d 100644</span><br><span>--- a/bsc/BSC_Tests_LCLS.ttcn</span><br><span>+++ b/bsc/BSC_Tests_LCLS.ttcn</span><br><span>@@ -24,7 +24,7 @@</span><br><span> import from IPL4asp_Types all;</span><br><span> </span><br><span> import from BSSAP_Types all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSAP_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Adapter 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>@@ -51,7 +51,7 @@</span><br><span> import from GSM_RR_Types all;</span><br><span> </span><br><span> import from BSSMAP_Templates all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> </span><br><span> import from MSC_ConnectionHandler all;</span><br><span> import from BSC_Tests all;</span><br><span>@@ -84,7 +84,7 @@</span><br><span> /* port type between lcls_test_CT and LCLS_MSC_ConnHdlr */</span><br><span> type port LCLS_InterComp_PT message {</span><br><span>              /* BSSAP from BSSA_ConnHdlr */</span><br><span style="color: hsl(0, 100%, 40%);">-  inout   PDU_BSSAP, BSSAP_Conn_Prim, PDU_DTAP_MO, PDU_DTAP_MT,</span><br><span style="color: hsl(120, 100%, 40%);">+ inout   PDU_BSSAP, RAN_Conn_Prim, PDU_DTAP_MO, PDU_DTAP_MT,</span><br><span>          /* RSL from RSL_DchanHdlr */</span><br><span>                 RSLDC_ChanRqd, RSL_Message,</span><br><span>          /* MGCP from MGCP_ConnHdlr */</span><br><span>@@ -101,7 +101,7 @@</span><br><span> /* forward messages between the RSL/MGCP/BSSAP Emulation and the master component */</span><br><span> private altstep as_lcls_conn_hdlr_proxy() runs on LCLS_MSC_ConnHdlr {</span><br><span>         var PDU_BSSAP bssap;</span><br><span style="color: hsl(0, 100%, 40%);">-    var BSSAP_Conn_Prim bssap_p;</span><br><span style="color: hsl(120, 100%, 40%);">+  var RAN_Conn_Prim bssap_p;</span><br><span>   var PDU_DTAP_MO dtap_mo;</span><br><span>     var PDU_DTAP_MT dtap_mt;</span><br><span>     var MgcpCommand mgcp_cmd;</span><br><span>@@ -109,7 +109,7 @@</span><br><span>      var RSL_Message rsl_msg;</span><br><span>     /* from ConnHdlr to master process */</span><br><span>        [] BSSAP.receive(PDU_BSSAP:?) -> value bssap { MASTER.send(bssap); }</span><br><span style="color: hsl(0, 100%, 40%);">- [] BSSAP.receive(BSSAP_Conn_Prim:?) -> value bssap_p { MASTER.send(bssap_p); }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] BSSAP.receive(RAN_Conn_Prim:?) -> value bssap_p { MASTER.send(bssap_p); }</span><br><span>      [] BSSAP.receive(PDU_DTAP_MO:?) -> value dtap_mo { MASTER.send(dtap_mo); }</span><br><span>        [] BSSAP.receive(PDU_DTAP_MT:?) -> value dtap_mt { MASTER.send(dtap_mt); }</span><br><span>        [] MGCP.receive(MgcpCommand:?) -> value mgcp_cmd { MASTER.send(mgcp_cmd); }</span><br><span>@@ -117,7 +117,7 @@</span><br><span>         [] RSL.receive(RSL_Message:?) -> value rsl_msg { MASTER.send(rsl_msg); }</span><br><span>  /* from master process to ConnHdlr */</span><br><span>        [] MASTER.receive(PDU_BSSAP:?) -> value bssap { BSSAP.send(bssap); }</span><br><span style="color: hsl(0, 100%, 40%);">- [] MASTER.receive(BSSAP_Conn_Prim:?) -> value bssap_p { BSSAP.send(bssap_p); }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] MASTER.receive(RAN_Conn_Prim:?) -> value bssap_p { BSSAP.send(bssap_p); }</span><br><span>      [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { BSSAP.send(dtap_mo); }</span><br><span>        [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { BSSAP.send(dtap_mt); }</span><br><span>        [] MASTER.receive(MgcpCommand:?) -> value mgcp_cmd { MGCP.send(mgcp_cmd); }</span><br><span>@@ -160,7 +160,7 @@</span><br><span> /* helper function to create and connect a MSC_ConnHdlr component */</span><br><span> /* FIXME: Why can't we use BSC_Tests.f_connect_andler() ?!? */</span><br><span> private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn) runs on lcls_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-        connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+    connect(vc_conn:RAN, g_bssap.vc_RAN:PROC);</span><br><span>   connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC);</span><br><span>       connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT);</span><br><span>   connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC);</span><br><span>@@ -168,7 +168,7 @@</span><br><span>                 connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT);</span><br><span>          connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC);</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT);</span><br><span style="color: hsl(120, 100%, 40%);">+     connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT);</span><br><span>       connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT);</span><br><span> }</span><br><span> </span><br><span>@@ -713,7 +713,7 @@</span><br><span>           }</span><br><span>            }</span><br><span>    [] CONN_A.receive(tr_BSSMAP_ClearComplete) {</span><br><span style="color: hsl(0, 100%, 40%);">-            CONN_A.send(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span style="color: hsl(120, 100%, 40%);">+          CONN_A.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span>           }</span><br><span>    [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls));</span><br><span>  }</span><br><span>diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn</span><br><span>index 96797c9..36e554d 100644</span><br><span>--- a/bsc/MSC_ConnectionHandler.ttcn</span><br><span>+++ b/bsc/MSC_ConnectionHandler.ttcn</span><br><span>@@ -6,7 +6,7 @@</span><br><span> import from GSM_Types all;</span><br><span> import from SCCPasp_Types all;</span><br><span> import from BSSAP_Types all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> </span><br><span> import from IPL4asp_Types all;</span><br><span>@@ -330,14 +330,14 @@</span><br><span> }</span><br><span> </span><br><span> /* this component represents a single subscriber connection at the MSC.</span><br><span style="color: hsl(0, 100%, 40%);">- * There is a 1:1 mapping between SCCP connections and BSSAP_ConnHdlr components.</span><br><span style="color: hsl(0, 100%, 40%);">- * We inherit all component variables, ports, functions, ... from BSSAP_ConnHdlr */</span><br><span style="color: hsl(0, 100%, 40%);">-type component MSC_ConnHdlr extends BSSAP_ConnHdlr, RSL_DchanHdlr, MGCP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+ * There is a 1:1 mapping between SCCP connections and RAN_ConnHdlr components.</span><br><span style="color: hsl(120, 100%, 40%);">+ * We inherit all component variables, ports, functions, ... from RAN_ConnHdlr */</span><br><span style="color: hsl(120, 100%, 40%);">+type component MSC_ConnHdlr extends RAN_ConnHdlr, RSL_DchanHdlr, MGCP_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 style="color: hsl(0, 100%, 40%);">- /* procedure port back to our parent (BSSMAP_Emulation_CT) for control */</span><br><span style="color: hsl(0, 100%, 40%);">-       port BSSMAPEM_PROC_PT BSSMAPEM;</span><br><span style="color: hsl(120, 100%, 40%);">+       /* procedure port back to our parent (RAN_Emulation_CT) for control */</span><br><span style="color: hsl(120, 100%, 40%);">+        port RAN_PROC_PT RAN;</span><br><span>        port TELNETasp_PT BSCVTY;</span><br><span> </span><br><span>        var MediaState g_media;</span><br><span>@@ -357,10 +357,10 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Callback function from general BSSMAP_Emulation whenever a connectionless</span><br><span style="color: hsl(120, 100%, 40%);">+/* Callback function from general RAN_Emulation whenever a connectionless</span><br><span>  * BSSMAP message arrives.  Can retunr a PDU_BSSAP that should be sent in return */</span><br><span> private function UnitdataCallback(PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return template PDU_BSSAP {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return template PDU_BSSAP {</span><br><span>  var template PDU_BSSAP resp := omit;</span><br><span> </span><br><span>     /* answer all RESET with a RESET ACK */</span><br><span>@@ -371,8 +371,8 @@</span><br><span>        return resp;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-const BssmapOps MSC_BssmapOps := {</span><br><span style="color: hsl(0, 100%, 40%);">- create_cb := refers(BSSMAP_Emulation.ExpectedCreateCallback),</span><br><span style="color: hsl(120, 100%, 40%);">+const RanOps MSC_RanOps := {</span><br><span style="color: hsl(120, 100%, 40%);">+   create_cb := refers(RAN_Emulation.ExpectedCreateCallback),</span><br><span>   unitdata_cb := refers(UnitdataCallback),</span><br><span>     decode_dtap := false,</span><br><span>        role_ms := false,</span><br><span>@@ -387,8 +387,8 @@</span><br><span> </span><br><span> /* register an expect with the BSSMAP core */</span><br><span> private function f_create_bssmap_exp(octetstring l3_enc) runs on MSC_ConnHdlr {</span><br><span style="color: hsl(0, 100%, 40%);">- BSSMAPEM.call(BSSMAPEM_register:{l3_enc, self}) {</span><br><span style="color: hsl(0, 100%, 40%);">-               [] BSSMAPEM.getreply(BSSMAPEM_register:{?, ?}) {};</span><br><span style="color: hsl(120, 100%, 40%);">+    RAN.call(RAN_register:{l3_enc, self}) {</span><br><span style="color: hsl(120, 100%, 40%);">+               [] RAN.getreply(RAN_register:{?, ?}) {};</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span>diff --git a/bsc/gen_links.sh b/bsc/gen_links.sh</span><br><span>index bf10761..d8393c3 100755</span><br><span>--- a/bsc/gen_links.sh</span><br><span>+++ b/bsc/gen_links.sh</span><br><span>@@ -67,7 +67,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 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 BSSMAP_Emulation.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 BSSAP_Adapter.ttcn 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"</span><br><span style="color: hsl(120, 100%, 40%);">+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.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.ttcn 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"</span><br><span> gen_links $DIR $FILES</span><br><span> </span><br><span> ignore_pp_results</span><br><span>diff --git a/library/BSSAP_Adapter.ttcn b/library/RAN_Adapter.ttcn</span><br><span>similarity index 77%</span><br><span>rename from library/BSSAP_Adapter.ttcn</span><br><span>rename to library/RAN_Adapter.ttcn</span><br><span>index cebdffe..294f747 100644</span><br><span>--- a/library/BSSAP_Adapter.ttcn</span><br><span>+++ b/library/RAN_Adapter.ttcn</span><br><span>@@ -1,14 +1,13 @@</span><br><span style="color: hsl(0, 100%, 40%);">-module BSSAP_Adapter {</span><br><span style="color: hsl(120, 100%, 40%);">+module RAN_Adapter {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* This module implements a 'dumb' BSSAP adapter.  It creates the M3UA and SCCP components and stacks a BSSAP</span><br><span style="color: hsl(0, 100%, 40%);">- * codec port on top.  As a result, it provides the ability to transceive SCCP-User-SAP primitives with</span><br><span style="color: hsl(0, 100%, 40%);">- * deoded BSSAP payload.  Use this if you want to have full control about what you transmit or receive,</span><br><span style="color: hsl(0, 100%, 40%);">- * without any automatisms in place.  Allows you to refuse connections or other abnormal behavior. */</span><br><span style="color: hsl(120, 100%, 40%);">+/* This module implements a 'dumb' RAN adapter.  It creates the M3UA and SCCP components and stacks a</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSSAP/RANAP codec port on top.  As a result, it provides the ability to transceive SCCP-User-SAP primitives</span><br><span style="color: hsl(120, 100%, 40%);">+ * with deoded BSSAP/RANAP payload.  Use this if you want to have full control about what you transmit or</span><br><span style="color: hsl(120, 100%, 40%);">+ * receive, without any automatisms in place.  Allows you to refuse connections or other abnormal behavior. */</span><br><span> </span><br><span> import from General_Types all;</span><br><span> import from Osmocom_Types all;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-import from M3UA_Types all;</span><br><span> import from M3UA_Emulation all;</span><br><span> import from MTP3asp_Types all;</span><br><span> import from MTP3asp_PortType all;</span><br><span>@@ -23,11 +22,10 @@</span><br><span> import from SCTPasp_Types all;</span><br><span> import from SCTPasp_PortType all;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSAP_CodecPort all;</span><br><span> import from BSSMAP_Templates all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record BSSAP_Adapter {</span><br><span style="color: hsl(120, 100%, 40%);">+type record RAN_Adapter {</span><br><span>        /* component references */</span><br><span>   M3UA_CT vc_M3UA,                /* only in 3GPP AoIP */</span><br><span>      IPA_Emulation_CT vc_IPA,        /* only in SCCPlite */</span><br><span>@@ -39,17 +37,17 @@</span><br><span>         SCCP_PAR_Address sccp_addr_peer,</span><br><span> </span><br><span>         /* handler mode */</span><br><span style="color: hsl(0, 100%, 40%);">-      BSSMAP_Emulation_CT vc_BSSMAP</span><br><span style="color: hsl(120, 100%, 40%);">+ RAN_Emulation_CT vc_RAN</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type enumerated BSSAP_Transport {</span><br><span style="color: hsl(120, 100%, 40%);">+type enumerated RAN_Transport {</span><br><span>   BSSAP_TRANSPORT_AoIP,   /* 3GPP AoIP: SCCP over M3UA over SCTP */</span><br><span>    BSSAP_TRANSPORT_SCCPlite_SERVER, /* SCCPlite: SCCP over IPA over TCP */</span><br><span>      BSSAP_TRANSPORT_SCCPlite_CLIENT  /* SCCPlite: SCCP over IPA over TCP */</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record BSSAP_Configuration {</span><br><span style="color: hsl(0, 100%, 40%);">-      BSSAP_Transport transport,</span><br><span style="color: hsl(120, 100%, 40%);">+type record RAN_Configuration {</span><br><span style="color: hsl(120, 100%, 40%);">+   RAN_Transport transport,</span><br><span>     charstring sccp_service_type,</span><br><span>        SCTP_Association_Address sctp_addr,</span><br><span>  integer own_pc,</span><br><span>@@ -60,7 +58,7 @@</span><br><span>  integer rctx</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function init_pars(inout BSSAP_Adapter ba, in BSSAP_Configuration cfg) {</span><br><span style="color: hsl(120, 100%, 40%);">+private function init_pars(inout RAN_Adapter ba, in RAN_Configuration cfg) {</span><br><span>         ba.sccp_pars := {</span><br><span>            sio := {</span><br><span>                     ni := substr(oct2bit(cfg.sio),0,2),</span><br><span>@@ -78,8 +76,8 @@</span><br><span> }</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_bssap_init(inout BSSAP_Adapter ba, in BSSAP_Configuration cfg, charstring id,</span><br><span style="color: hsl(0, 100%, 40%);">-                    template BssmapOps ops) {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_bssap_init(inout RAN_Adapter ba, in RAN_Configuration cfg, charstring id,</span><br><span style="color: hsl(120, 100%, 40%);">+                       template RanOps ops) {</span><br><span>       init_pars(ba, cfg);</span><br><span>  ops.sccp_addr_local := ba.sccp_addr_own;</span><br><span>     ops.sccp_addr_peer := ba.sccp_addr_peer;</span><br><span>@@ -87,7 +85,7 @@</span><br><span>         /* create components */</span><br><span>      ba.vc_SCCP := SCCP_CT.create(id & "-SCCP");</span><br><span>    if (isvalue(ops)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             ba.vc_BSSMAP := BSSMAP_Emulation_CT.create(id & "-BSSMAP");</span><br><span style="color: hsl(120, 100%, 40%);">+             ba.vc_RAN := RAN_Emulation_CT.create(id & "-RAN");</span><br><span>     }</span><br><span>    select (cfg.transport) {</span><br><span>     case (BSSAP_TRANSPORT_AoIP) {</span><br><span>@@ -131,7 +129,7 @@</span><br><span>          disconnect(ba.vc_IPA:IPA_SP_PORT, ba.vc_WAIT:IPA_SP_PORT);</span><br><span>           }</span><br><span>    case else {</span><br><span style="color: hsl(0, 100%, 40%);">-             setverdict(fail, "Unsuppored BSSAP_Transport");</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Unsuppored RAN_Transport");</span><br><span>              mtc.stop;</span><br><span>            }</span><br><span>    }</span><br><span>@@ -142,20 +140,20 @@</span><br><span>            //T.timeout;</span><br><span>                 log("Connecting BSSMAP Emulation to SCCP_SP_PORT and starting emulation");</span><br><span>                 /* connect BSSNAP component to upper side of SCCP */</span><br><span style="color: hsl(0, 100%, 40%);">-            connect(ba.vc_BSSMAP:BSSAP, ba.vc_SCCP:SCCP_SP_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+         connect(ba.vc_RAN:BSSAP, ba.vc_SCCP:SCCP_SP_PORT);</span><br><span>           if (cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER or</span><br><span>                  cfg.transport == BSSAP_TRANSPORT_SCCPlite_CLIENT) {</span><br><span>                      /* connect IPA MGCP port with BSSMAP MGCP port */</span><br><span style="color: hsl(0, 100%, 40%);">-                       connect(ba.vc_IPA:IPA_MGCP_PORT, ba.vc_BSSMAP:MGCP);</span><br><span style="color: hsl(120, 100%, 40%);">+                  connect(ba.vc_IPA:IPA_MGCP_PORT, ba.vc_RAN:MGCP);</span><br><span>            }</span><br><span>            /* start the BSSMAP emulation */</span><br><span style="color: hsl(0, 100%, 40%);">-                ba.vc_BSSMAP.start(BSSMAP_Emulation.main(valueof(ops), ""));</span><br><span style="color: hsl(120, 100%, 40%);">+                ba.vc_RAN.start(RAN_Emulation.main(valueof(ops), ""));</span><br><span>     }</span><br><span> </span><br><span> </span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_bssap_start(inout BSSAP_Adapter ba) {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_bssap_start(inout RAN_Adapter ba) {</span><br><span>   ba.vc_SCCP.start(SCCPStart(ba.sccp_pars));</span><br><span> }</span><br><span> </span><br><span>diff --git a/library/BSSMAP_Emulation.ttcn b/library/RAN_Emulation.ttcn</span><br><span>similarity index 82%</span><br><span>rename from library/BSSMAP_Emulation.ttcn</span><br><span>rename to library/RAN_Emulation.ttcn</span><br><span>index 55ce2fb..5a97a6e 100644</span><br><span>--- a/library/BSSMAP_Emulation.ttcn</span><br><span>+++ b/library/RAN_Emulation.ttcn</span><br><span>@@ -1,16 +1,16 @@</span><br><span style="color: hsl(0, 100%, 40%);">-module BSSMAP_Emulation {</span><br><span style="color: hsl(120, 100%, 40%);">+module RAN_Emulation {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* BSSMAP Emulation, runs on top of BSSAP_CodecPort.  It multiplexes/demultiplexes</span><br><span style="color: hsl(120, 100%, 40%);">+/* RAN Emulation, runs on top of BSSAP_CodecPort.  It multiplexes/demultiplexes</span><br><span>  * the individual connections, so there can be separate TTCN-3 components handling</span><br><span>  * each of the connections.</span><br><span>  *</span><br><span style="color: hsl(0, 100%, 40%);">- * The BSSMAP_Emulation.main() function processes SCCP primitives from the SCCP</span><br><span style="color: hsl(120, 100%, 40%);">+ * The RAN_Emulation.main() function processes SCCP primitives from the SCCP</span><br><span>  * stack via the BSSAP_CodecPort, and dispatches them to the per-connection components.</span><br><span>  *</span><br><span>  * Outbound BSSAP/SCCP connections are initiated by sending a BSSAP_Conn_Req primitive</span><br><span style="color: hsl(0, 100%, 40%);">- * to the component running the BSSMAP_Emulation.main() function.</span><br><span style="color: hsl(120, 100%, 40%);">+ * to the component running the RAN_Emulation.main() function.</span><br><span>  *</span><br><span style="color: hsl(0, 100%, 40%);">- * For each new inbound connections, the BssmapOps.create_cb() is called.  It can create</span><br><span style="color: hsl(120, 100%, 40%);">+ * For each new inbound connections, the RanOps.create_cb() is called.  It can create</span><br><span>  * or resolve a TTCN-3 component, and returns a component reference to which that inbound</span><br><span>  * connection is routed/dispatched.</span><br><span>  *</span><br><span>@@ -19,7 +19,7 @@</span><br><span>  * if you are simulating BTS + MSC, and first trigger a connection from BTS/RSL side in a</span><br><span>  * component which then subsequently should also handle the MSC emulation.</span><br><span>  *</span><br><span style="color: hsl(0, 100%, 40%);">- * Inbound Unit Data messages (such as are dispatched to the BssmapOps.unitdata_cb() callback,</span><br><span style="color: hsl(120, 100%, 40%);">+ * Inbound Unit Data messages (such as are dispatched to the RanOps.unitdata_cb() callback,</span><br><span>  * which is registered with an argument to the main() function below.</span><br><span>  *</span><br><span>  * (C) 2017-2018 by Harald Welte <laforge@gnumonks.org></span><br><span>@@ -44,15 +44,15 @@</span><br><span> </span><br><span> /* General "base class" component definition, of which specific implementations</span><br><span>  * derive themselves by means of the "extends" feature */</span><br><span style="color: hsl(0, 100%, 40%);">-type component BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+type component RAN_ConnHdlr {</span><br><span>  /* port towards MSC Emulator core / SCCP connection dispatchar */</span><br><span style="color: hsl(0, 100%, 40%);">-       port BSSAP_Conn_PT BSSAP;</span><br><span style="color: hsl(120, 100%, 40%);">+     port RAN_Conn_PT BSSAP;</span><br><span>      /* procedure based port to register for incoming connections */</span><br><span style="color: hsl(0, 100%, 40%);">- port BSSMAPEM_PROC_PT BSSAP_PROC;</span><br><span style="color: hsl(120, 100%, 40%);">+     port RAN_PROC_PT BSSAP_PROC;</span><br><span> }</span><br><span> </span><br><span> /* Auxiliary primitive that can happen on the port between per-connection client and this dispatcher */</span><br><span style="color: hsl(0, 100%, 40%);">-type enumerated BSSAP_Conn_Prim {</span><br><span style="color: hsl(120, 100%, 40%);">+type enumerated RAN_Conn_Prim {</span><br><span>   /* SCCP tell us that connection was released */</span><br><span>      MSC_CONN_PRIM_DISC_IND,</span><br><span>      /* we tell SCCP to release connection */</span><br><span>@@ -110,11 +110,11 @@</span><br><span> </span><br><span> </span><br><span> /* port between individual per-connection components and this dispatcher */</span><br><span style="color: hsl(0, 100%, 40%);">-type port BSSAP_Conn_PT message {</span><br><span style="color: hsl(120, 100%, 40%);">+type port RAN_Conn_PT message {</span><br><span>            /* BSSAP or direct DTAP messages from/to clients */</span><br><span>  inout   PDU_BSSAP, PDU_DTAP_MO, PDU_DTAP_MT,</span><br><span>                 /* misc indications / requests between SCCP and client */</span><br><span style="color: hsl(0, 100%, 40%);">-               BSSAP_Conn_Prim,</span><br><span style="color: hsl(120, 100%, 40%);">+              RAN_Conn_Prim,</span><br><span>               /* Client requests us to create SCCP Connection */</span><br><span>           BSSAP_Conn_Req,</span><br><span>              /* MGCP, only used for IPA SCCPlite (MGCP in IPA mux) */</span><br><span>@@ -125,7 +125,7 @@</span><br><span> /* represents a single BSSAP connection over SCCP */</span><br><span> type record ConnectionData {</span><br><span>       /* reference to the instance of the per-connection component */</span><br><span style="color: hsl(0, 100%, 40%);">- BSSAP_ConnHdlr  comp_ref,</span><br><span style="color: hsl(120, 100%, 40%);">+     RAN_ConnHdlr    comp_ref,</span><br><span>    integer         sccp_conn_id,</span><br><span>        /* most recent MGCP transaction ID (Used on MSC side) */</span><br><span>     MgcpTransId     mgcp_trans_id optional,</span><br><span>@@ -136,16 +136,16 @@</span><br><span> }</span><br><span> </span><br><span> type record ImsiMapping {</span><br><span style="color: hsl(0, 100%, 40%);">-   BSSAP_ConnHdlr  comp_ref,</span><br><span style="color: hsl(120, 100%, 40%);">+     RAN_ConnHdlr    comp_ref,</span><br><span>    hexstring       imsi optional,</span><br><span>       OCT4            tmsi</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type component BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+type component RAN_Emulation_CT {</span><br><span>         /* SCCP port on the bottom side, using ASP primitives */</span><br><span>     port BSSAP_CODEC_PT BSSAP;</span><br><span>   /* BSSAP port to the per-connection clients */</span><br><span style="color: hsl(0, 100%, 40%);">-  port BSSAP_Conn_PT CLIENT;</span><br><span style="color: hsl(120, 100%, 40%);">+    port RAN_Conn_PT CLIENT;</span><br><span>     /* MGCP port */</span><br><span>      port IPA_MGCP_PT MGCP;</span><br><span> </span><br><span>@@ -159,15 +159,15 @@</span><br><span>   var ImsiMapping ImsiTable[16];</span><br><span> </span><br><span>   /* procedure based port to register for incoming connections */</span><br><span style="color: hsl(0, 100%, 40%);">- port BSSMAPEM_PROC_PT PROC;</span><br><span style="color: hsl(120, 100%, 40%);">+   port RAN_PROC_PT PROC;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      var charstring g_bssmap_id;</span><br><span style="color: hsl(120, 100%, 40%);">+   var charstring g_ran_id;</span><br><span>     var integer g_next_e1_ts := 1;</span><br><span style="color: hsl(0, 100%, 40%);">-  var BssmapOps g_bssmap_ops;</span><br><span style="color: hsl(120, 100%, 40%);">+   var RanOps g_ran_ops;</span><br><span> };</span><br><span> </span><br><span> private function f_conn_id_known(integer sccp_conn_id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return boolean {</span><br><span>     var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].sccp_conn_id == sccp_conn_id){</span><br><span>@@ -177,8 +177,8 @@</span><br><span>  return false;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_comp_known(BSSAP_ConnHdlr client)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_comp_known(RAN_ConnHdlr client)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return boolean {</span><br><span>        var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].comp_ref == client) {</span><br><span>@@ -189,7 +189,7 @@</span><br><span> }</span><br><span> </span><br><span> private function f_cic_known(integer cic)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return boolean {</span><br><span>      var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].cic == cic) {</span><br><span>@@ -201,32 +201,32 @@</span><br><span> </span><br><span> /* resolve component reference by connection ID */</span><br><span> private function f_comp_by_conn_id(integer sccp_conn_id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span>        var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].sccp_conn_id == sccp_conn_id) {</span><br><span>                       return ConnectionTable[i].comp_ref;</span><br><span>          }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by SCCP Connection ID ", sccp_conn_id);</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "RAN Connection table not found by SCCP Connection ID ", sccp_conn_id);</span><br><span>   mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve component reference by CIC */</span><br><span> private function f_comp_by_mgcp_tid(MgcpTransId tid)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span>    var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].mgcp_trans_id == tid) {</span><br><span>                       return ConnectionTable[i].comp_ref;</span><br><span>          }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by MGCP Transaction ID ", tid);</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "RAN Connection table not found by MGCP Transaction ID ", tid);</span><br><span>   mtc.stop;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_comp_store_mgcp_tid(BSSAP_ConnHdlr client, MgcpTransId tid)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_comp_store_mgcp_tid(RAN_ConnHdlr client, MgcpTransId tid)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>      var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].comp_ref == client) {</span><br><span>@@ -234,24 +234,24 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(fail, "RAN Connection table not found by component ", client);</span><br><span>  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_comp_by_cic(integer cic)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span>         var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].cic == cic) {</span><br><span>                         return ConnectionTable[i].comp_ref;</span><br><span>          }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by CIC ", cic);</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "RAN Connection table not found by CIC ", cic);</span><br><span>   mtc.stop;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_comp_store_cic(BSSAP_ConnHdlr client, integer cic)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_comp_store_cic(RAN_ConnHdlr client, integer cic)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>        var integer i;</span><br><span>       for (i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>             if (ConnectionTable[i].comp_ref == client) {</span><br><span>@@ -259,36 +259,36 @@</span><br><span>                         return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(fail, "RAN Connection table not found by component ", client);</span><br><span>  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve connection ID by component reference */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_conn_id_by_comp(BSSAP_ConnHdlr client)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return integer {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_conn_id_by_comp(RAN_ConnHdlr client)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return integer {</span><br><span>    for (var integer i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>                 if (ConnectionTable[i].comp_ref == client) {</span><br><span>                         return ConnectionTable[i].sccp_conn_id;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(fail, "RAN Connection table not found by component ", client);</span><br><span>  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> /* resolve ConnectionTable index component reference */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_idx_by_comp(BSSAP_ConnHdlr client)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return integer {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_idx_by_comp(RAN_ConnHdlr client)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return integer {</span><br><span>       for (var integer i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>                 if (ConnectionTable[i].comp_ref == client) {</span><br><span>                         return i;</span><br><span>            }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table not found by component ", client);</span><br><span style="color: hsl(120, 100%, 40%);">+        setverdict(fail, "RAN Connection table not found by component ", client);</span><br><span>  mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_gen_conn_id()</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return integer {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return integer {</span><br><span>        var integer conn_id;</span><br><span> </span><br><span>     do {</span><br><span>@@ -299,7 +299,7 @@</span><br><span> }</span><br><span> </span><br><span> private function f_conn_table_init()</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>         for (var integer i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>                 ConnectionTable[i].comp_ref := null;</span><br><span>                 ConnectionTable[i].sccp_conn_id := -1;</span><br><span>@@ -314,8 +314,8 @@</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_conn_table_add(BSSAP_ConnHdlr comp_ref, integer sccp_conn_id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_conn_table_add(RAN_ConnHdlr comp_ref, integer sccp_conn_id)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>  for (var integer i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>                 if (ConnectionTable[i].sccp_conn_id == -1) {</span><br><span>                         ConnectionTable[i].comp_ref := comp_ref;</span><br><span>@@ -325,11 +325,11 @@</span><br><span>                     return;</span><br><span>              }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       testcase.stop("BSSMAP Connection table full!");</span><br><span style="color: hsl(120, 100%, 40%);">+     testcase.stop("RAN Connection table full!");</span><br><span> }</span><br><span> </span><br><span> private function f_conn_table_del(integer sccp_conn_id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>  for (var integer i := 0; i < sizeof(ConnectionTable); i := i+1) {</span><br><span>                 if (ConnectionTable[i].sccp_conn_id == sccp_conn_id) {</span><br><span>                       log("Deleted conn table entry ", i,</span><br><span>@@ -339,12 +339,12 @@</span><br><span>                        return</span><br><span>               }</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       setverdict(fail, "BSSMAP Connection table attempt to delete non-existant ", sccp_conn_id);</span><br><span style="color: hsl(120, 100%, 40%);">+  setverdict(fail, "RAN Connection table attempt to delete non-existant ", sccp_conn_id);</span><br><span>    mtc.stop;</span><br><span> }</span><br><span> </span><br><span> private function f_imsi_table_find(hexstring imsi, template OCT4 tmsi)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span>      for (var integer i := 0; i < sizeof(ImsiTable); i := i+1) {</span><br><span>               if (ImsiTable[i].imsi == imsi or</span><br><span>                 isvalue(tmsi) and match(ImsiTable[i].tmsi, tmsi)) {</span><br><span>@@ -355,8 +355,8 @@</span><br><span> }</span><br><span> </span><br><span> /* handle (optional) userData portion of various primitives and dispatch it to the client */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_handle_userData(BSSAP_ConnHdlr client, PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_handle_userData(RAN_ConnHdlr client, PDU_BSSAP bssap)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>  /* decode + send decoded BSSAP to client */</span><br><span> </span><br><span>      if (ischosen(bssap.pdu.bssmap)) {</span><br><span>@@ -370,8 +370,8 @@</span><br><span>              }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   if (ischosen(bssap.pdu.dtap) and g_bssmap_ops.decode_dtap) {</span><br><span style="color: hsl(0, 100%, 40%);">-            if (g_bssmap_ops.role_ms) {</span><br><span style="color: hsl(120, 100%, 40%);">+   if (ischosen(bssap.pdu.dtap) and g_ran_ops.decode_dtap) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (g_ran_ops.role_ms) {</span><br><span>                     /* we are the MS, so any message to us must be MT */</span><br><span>                         var PDU_DTAP_MT mt := {</span><br><span>                              dlci := bssap.dlci,</span><br><span>@@ -394,16 +394,16 @@</span><br><span> /* call-back type, to be provided by specific implementation; called when new SCCP connection</span><br><span>  * arrives */</span><br><span> type function BssmapCreateCallback(BSSAP_N_CONNECT_ind conn_ind, charstring id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr;</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr;</span><br><span> </span><br><span> type function BssmapUnitdataCallback(PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return template PDU_BSSAP;</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return template PDU_BSSAP;</span><br><span> </span><br><span> /* handle common Unitdata such as Paging */</span><br><span> private function CommonBssmapUnitdataCallback(PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return template PDU_BSSAP {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return template PDU_BSSAP {</span><br><span>  if (match(bssap, tr_BSSMAP_Paging)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           var BSSAP_ConnHdlr client := null;</span><br><span style="color: hsl(120, 100%, 40%);">+            var RAN_ConnHdlr client := null;</span><br><span>             client := f_imsi_table_find(bssap.pdu.bssmap.paging.iMSI.digits,</span><br><span>                                        bssap.pdu.bssmap.paging.tMSI.tmsiOctets);</span><br><span>                 if (isvalue(client)) {</span><br><span>@@ -417,10 +417,10 @@</span><br><span>               log("CommonBssmapUnitdataCallback: Not a paging message");</span><br><span>         }</span><br><span>    /* ELSE: handle in user callback */</span><br><span style="color: hsl(0, 100%, 40%);">-     return g_bssmap_ops.unitdata_cb.apply(bssap);</span><br><span style="color: hsl(120, 100%, 40%);">+ return g_ran_ops.unitdata_cb.apply(bssap);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record BssmapOps {</span><br><span style="color: hsl(120, 100%, 40%);">+type record RanOps {</span><br><span>     BssmapCreateCallback create_cb,</span><br><span>      BssmapUnitdataCallback unitdata_cb,</span><br><span>  boolean decode_dtap,</span><br><span>@@ -472,7 +472,7 @@</span><br><span>   return false;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private altstep as_reset_ack() runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_reset_ack() runs on RAN_Emulation_CT {</span><br><span>        var BSSAP_N_UNITDATA_ind ud_ind;</span><br><span>     [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset)) -> value ud_ind {</span><br><span>          log("Respoding to inbound RESET with RESET-ACK");</span><br><span>@@ -483,7 +483,7 @@</span><br><span> }</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_bssap_wait_for_reset() runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_bssap_wait_for_reset() runs on RAN_Emulation_CT {</span><br><span>  var BSSAP_N_UNITDATA_ind ud_ind;</span><br><span>     timer T := 20.0;</span><br><span> </span><br><span>@@ -504,7 +504,7 @@</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_bssap_reset(SCCP_PAR_Address peer, SCCP_PAR_Address own) runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_bssap_reset(SCCP_PAR_Address peer, SCCP_PAR_Address own) runs on RAN_Emulation_CT {</span><br><span>  timer T := 5.0;</span><br><span> </span><br><span>  BSSAP.send(ts_BSSAP_UNITDATA_req(peer, own, ts_BSSMAP_Reset(0)));</span><br><span>@@ -522,10 +522,10 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function main(BssmapOps ops, charstring id) runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+function main(RanOps ops, charstring id) runs on RAN_Emulation_CT {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    g_bssmap_id := id;</span><br><span style="color: hsl(0, 100%, 40%);">-      g_bssmap_ops := ops;</span><br><span style="color: hsl(120, 100%, 40%);">+  g_ran_id := id;</span><br><span style="color: hsl(120, 100%, 40%);">+       g_ran_ops := ops;</span><br><span>    f_conn_table_init();</span><br><span>         f_expect_table_init();</span><br><span> </span><br><span>@@ -541,13 +541,13 @@</span><br><span>           var BSSAP_N_DATA_ind data_ind;</span><br><span>               var BSSAP_N_DISCONNECT_ind disc_ind;</span><br><span>                 var BSSAP_Conn_Req creq;</span><br><span style="color: hsl(0, 100%, 40%);">-                var BSSAP_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+           var RAN_ConnHdlr vc_conn;</span><br><span>            var PDU_BSSAP bssap;</span><br><span>                 var PDU_DTAP_MO dtap_mo;</span><br><span>             var PDU_DTAP_MT dtap_mt;</span><br><span>             var MgcpCommand mgcp_req;</span><br><span>            var MgcpResponse mgcp_resp;</span><br><span style="color: hsl(0, 100%, 40%);">-             var BSSAP_ConnHdlr vc_hdlr;</span><br><span style="color: hsl(120, 100%, 40%);">+           var RAN_ConnHdlr vc_hdlr;</span><br><span>            var octetstring l3_info;</span><br><span>             var hexstring imsi;</span><br><span>          var OCT4 tmsi;</span><br><span>@@ -590,7 +590,7 @@</span><br><span>                                 f_handle_userData(vc_conn, disc_ind.userData);</span><br><span>                       }</span><br><span>                    /* notify client about termination */</span><br><span style="color: hsl(0, 100%, 40%);">-                   var BSSAP_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND;</span><br><span style="color: hsl(120, 100%, 40%);">+                   var RAN_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND;</span><br><span>                    CLIENT.send(prim) to vc_conn;</span><br><span>                        f_conn_table_del(disc_ind.connectionId);</span><br><span>                     /* TOOD: return confirm to other side? */</span><br><span>@@ -599,7 +599,7 @@</span><br><span>              /* SCCP -> Client: connection confirm for outbound connection */</span><br><span>          [] BSSAP.receive(BSSAP_N_CONNECT_cfm:?) -> value conn_cfm {</span><br><span>                       vc_conn := f_comp_by_conn_id(conn_cfm.connectionId);</span><br><span style="color: hsl(0, 100%, 40%);">-                    var BSSAP_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND;</span><br><span style="color: hsl(120, 100%, 40%);">+                   var RAN_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND;</span><br><span>                    CLIENT.send(prim) to vc_conn;</span><br><span>                        /* handle user payload */</span><br><span>                    if (ispresent(conn_cfm.userData)) {</span><br><span>@@ -608,7 +608,7 @@</span><br><span>                    }</span><br><span> </span><br><span>                /* Disconnect request client -> SCCP */</span><br><span style="color: hsl(0, 100%, 40%);">-              [] CLIENT.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn {</span><br><span style="color: hsl(120, 100%, 40%);">+              [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn {</span><br><span>                       var integer conn_id := f_conn_id_by_comp(vc_conn);</span><br><span>                   BSSAP.send(ts_BSSAP_DISC_req(conn_id, 0));</span><br><span>                   f_conn_table_del(conn_id);</span><br><span>@@ -636,7 +636,7 @@</span><br><span> </span><br><span>                         /* InitialL3 contains RR (PAG RESP) or MM (CM SRV REQ), we must increment</span><br><span>                     * counter only on MM/CC/SS, but not on RR */</span><br><span style="color: hsl(0, 100%, 40%);">-                   if (g_bssmap_ops.role_ms and not f_bssap_l3_is_rr(creq.bssap)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      if (g_ran_ops.role_ms and not f_bssap_l3_is_rr(creq.bssap)) {</span><br><span>                                /* we have just sent the first MM message, increment the counter */</span><br><span>                          var integer idx := f_idx_by_comp(vc_conn);</span><br><span>                           ConnectionTable[idx].n_sd[0] := 1;</span><br><span>@@ -651,7 +651,7 @@</span><br><span>                     BSSAP.send(ts_BSSAP_DATA_req(conn_id, bssap));</span><br><span>                       }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           [g_bssmap_ops.role_ms] CLIENT.receive(PDU_DTAP_MO:?) -> value dtap_mo sender vc_conn {</span><br><span style="color: hsl(120, 100%, 40%);">+             [g_ran_ops.role_ms] CLIENT.receive(PDU_DTAP_MO:?) -> value dtap_mo sender vc_conn {</span><br><span>                       var integer idx := f_idx_by_comp(vc_conn);</span><br><span>                   /* convert from decoded DTAP to encoded DTAP */</span><br><span>                      var octetstring l3_enc := enc_PDU_ML3_MS_NW(dtap_mo.dtap);</span><br><span>@@ -663,7 +663,7 @@</span><br><span>                     BSSAP.send(ts_BSSAP_DATA_req(ConnectionTable[idx].sccp_conn_id, bssap));</span><br><span>                     }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           [not g_bssmap_ops.role_ms] CLIENT.receive(PDU_DTAP_MT:?) -> value dtap_mt sender vc_conn {</span><br><span style="color: hsl(120, 100%, 40%);">+         [not g_ran_ops.role_ms] CLIENT.receive(PDU_DTAP_MT:?) -> value dtap_mt sender vc_conn {</span><br><span>                   var integer conn_id := f_conn_id_by_comp(vc_conn);</span><br><span>                   /* convert from decoded DTAP to encoded DTAP */</span><br><span>                      var octetstring l3_enc := enc_PDU_ML3_NW_MS(dtap_mt.dtap);</span><br><span>@@ -712,14 +712,14 @@</span><br><span>                   }</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               [] PROC.getcall(BSSMAPEM_register:{?,?}) -> param(l3_info, vc_hdlr) {</span><br><span style="color: hsl(120, 100%, 40%);">+              [] PROC.getcall(RAN_register:{?,?}) -> param(l3_info, vc_hdlr) {</span><br><span>                  f_create_expect(l3_info, vc_hdlr);</span><br><span style="color: hsl(0, 100%, 40%);">-                      PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr}) to vc_hdlr;</span><br><span style="color: hsl(120, 100%, 40%);">+                  PROC.reply(RAN_register:{l3_info, vc_hdlr}) to vc_hdlr;</span><br><span>                      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           [] PROC.getcall(BSSMAPEM_register_imsi:{?,?,?}) -> param(imsi, tmsi, vc_hdlr) {</span><br><span style="color: hsl(120, 100%, 40%);">+            [] PROC.getcall(RAN_register_imsi:{?,?,?}) -> param(imsi, tmsi, vc_hdlr) {</span><br><span>                        f_create_imsi(imsi, tmsi, vc_hdlr);</span><br><span style="color: hsl(0, 100%, 40%);">-                     PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr}) to vc_hdlr;</span><br><span style="color: hsl(120, 100%, 40%);">+                  PROC.reply(RAN_register_imsi:{imsi, tmsi, vc_hdlr}) to vc_hdlr;</span><br><span>                      }</span><br><span> </span><br><span> </span><br><span>@@ -742,23 +742,23 @@</span><br><span>    /* L3 payload based on which we can match it */</span><br><span>      octetstring l3_payload optional,</span><br><span>     /* component reference for this connection */</span><br><span style="color: hsl(0, 100%, 40%);">-   BSSAP_ConnHdlr vc_conn</span><br><span style="color: hsl(120, 100%, 40%);">+        RAN_ConnHdlr vc_conn</span><br><span> }</span><br><span> </span><br><span> /* procedure based port to register for incoming connections */</span><br><span style="color: hsl(0, 100%, 40%);">-signature BSSMAPEM_register(in octetstring l3, in BSSAP_ConnHdlr hdlr);</span><br><span style="color: hsl(120, 100%, 40%);">+signature RAN_register(in octetstring l3, in RAN_ConnHdlr hdlr);</span><br><span> </span><br><span> /* procedure based port to register for incoming IMSI/TMSI */</span><br><span style="color: hsl(0, 100%, 40%);">-signature BSSMAPEM_register_imsi(in hexstring imsi, in OCT4 tmsi, in BSSAP_ConnHdlr hdlr);</span><br><span style="color: hsl(120, 100%, 40%);">+signature RAN_register_imsi(in hexstring imsi, in OCT4 tmsi, in RAN_ConnHdlr hdlr);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type port BSSMAPEM_PROC_PT procedure {</span><br><span style="color: hsl(0, 100%, 40%);">- inout BSSMAPEM_register, BSSMAPEM_register_imsi;</span><br><span style="color: hsl(120, 100%, 40%);">+type port RAN_PROC_PT procedure {</span><br><span style="color: hsl(120, 100%, 40%);">+   inout RAN_register, RAN_register_imsi;</span><br><span> } with { extension "internal" };</span><br><span> </span><br><span> /* CreateCallback that can be used as create_cb and will use the expectation table */</span><br><span> function ExpectedCreateCallback(BSSAP_N_CONNECT_ind conn_ind, charstring id)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return BSSAP_ConnHdlr {</span><br><span style="color: hsl(0, 100%, 40%);">-    var BSSAP_ConnHdlr ret := null;</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return RAN_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+       var RAN_ConnHdlr ret := null;</span><br><span>        var octetstring l3_info;</span><br><span>     var integer i;</span><br><span> </span><br><span>@@ -788,8 +788,8 @@</span><br><span>     return ret;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_create_expect(octetstring l3, BSSAP_ConnHdlr hdlr)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_create_expect(octetstring l3, RAN_ConnHdlr hdlr)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>      var integer i;</span><br><span>       for (i := 0; i < sizeof(ExpectTable); i := i+1) {</span><br><span>                 if (not ispresent(ExpectTable[i].l3_payload)) {</span><br><span>@@ -802,8 +802,8 @@</span><br><span>        testcase.stop("No space left in ExpectTable");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_create_imsi(hexstring imsi, OCT4 tmsi, BSSAP_ConnHdlr hdlr)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_create_imsi(hexstring imsi, OCT4 tmsi, RAN_ConnHdlr hdlr)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>       for (var integer i := 0; i < sizeof(ImsiTable); i := i+1) {</span><br><span>               if (not ispresent(ImsiTable[i].imsi)) {</span><br><span>                      ImsiTable[i].imsi := imsi;</span><br><span>@@ -818,17 +818,17 @@</span><br><span> </span><br><span> </span><br><span> private function f_expect_table_init()</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT {</span><br><span>        for (var integer i := 0; i < sizeof(ExpectTable); i := i+1) {</span><br><span>             ExpectTable[i].l3_payload := omit;</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span> /* helper function for clients to register their IMSI/TMSI */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_bssmap_register_imsi(hexstring imsi, OCT4 tmsi)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSAP_ConnHdlr {</span><br><span style="color: hsl(0, 100%, 40%);">-   BSSAP_PROC.call(BSSMAPEM_register_imsi:{imsi, tmsi, self}) {</span><br><span style="color: hsl(0, 100%, 40%);">-            [] BSSAP_PROC.getreply(BSSMAPEM_register_imsi:{?,?,?}) {};</span><br><span style="color: hsl(120, 100%, 40%);">+function f_ran_register_imsi(hexstring imsi, OCT4 tmsi)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+   BSSAP_PROC.call(RAN_register_imsi:{imsi, tmsi, self}) {</span><br><span style="color: hsl(120, 100%, 40%);">+               [] BSSAP_PROC.getreply(RAN_register_imsi:{?,?,?}) {};</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span>diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn</span><br><span>index 8e5c5f2..00e86f1 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -7,7 +7,7 @@</span><br><span> import from IPL4asp_Types all;</span><br><span> import from SCCPasp_Types all;</span><br><span> import from BSSAP_Types all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> </span><br><span> import from GSUP_Types all;</span><br><span>@@ -42,7 +42,7 @@</span><br><span> import from SGsAP_Emulation all;</span><br><span> </span><br><span> /* this component represents a single subscriber connection */</span><br><span style="color: hsl(0, 100%, 40%);">-type component BSC_ConnHdlr extends BSSAP_ConnHdlr, MNCC_ConnHdlr, GSUP_ConnHdlr, MGCP_ConnHdlr, SMPP_ConnHdlr, CTRL_Adapter_CT, SGsAP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+type component BSC_ConnHdlr extends RAN_ConnHdlr, MNCC_ConnHdlr, GSUP_ConnHdlr, MGCP_ConnHdlr, SMPP_ConnHdlr, CTRL_Adapter_CT, SGsAP_ConnHdlr {</span><br><span>       var BSC_ConnHdlrPars g_pars;</span><br><span>         timer g_Tguard := 60.0;</span><br><span>      port TELNETasp_PT MSCVTY;</span><br><span>@@ -155,10 +155,10 @@</span><br><span> }</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Callback function from general BSSMAP_Emulation whenever a connectionless</span><br><span style="color: hsl(120, 100%, 40%);">+/* Callback function from general RAN_Emulation whenever a connectionless</span><br><span>  * BSSMAP message arrives. Canreturn a PDU_BSSAPthat should be sent in return */</span><br><span> private function BscUnitdataCallback(PDU_BSSAP bssap)</span><br><span style="color: hsl(0, 100%, 40%);">-runs on BSSMAP_Emulation_CT return template PDU_BSSAP {</span><br><span style="color: hsl(120, 100%, 40%);">+runs on RAN_Emulation_CT return template PDU_BSSAP {</span><br><span>      var template PDU_BSSAP resp := omit;</span><br><span> </span><br><span>     log("BSSMAP_BscUnitdataCallback");</span><br><span>@@ -172,9 +172,9 @@</span><br><span>   return resp;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-const BssmapOps BSC_BssmapOps := {</span><br><span style="color: hsl(120, 100%, 40%);">+const RanOps BSC_RanOps := {</span><br><span>        /* Create call-back for inbound connections from MSC (hand-over) */</span><br><span style="color: hsl(0, 100%, 40%);">-     create_cb := refers(BSSMAP_Emulation.ExpectedCreateCallback),</span><br><span style="color: hsl(120, 100%, 40%);">+ create_cb := refers(RAN_Emulation.ExpectedCreateCallback),</span><br><span>   unitdata_cb := refers(BscUnitdataCallback),</span><br><span>  decode_dtap := true,</span><br><span>         role_ms := true,</span><br><span>@@ -196,7 +196,7 @@</span><br><span> </span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Encode 'l3' and ask BSSMAP_Emulation to create new connection with COMPL L3 INFO */</span><br><span style="color: hsl(120, 100%, 40%);">+/* Encode 'l3' and ask RAN_Emulation to create new connection with COMPL L3 INFO */</span><br><span> function f_bssap_compl_l3(PDU_ML3_MS_NW l3)</span><br><span> runs on BSC_ConnHdlr {</span><br><span>       log("Sending COMPL L3: ", l3);</span><br><span>@@ -204,8 +204,8 @@</span><br><span>       BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,</span><br><span>                                 valueof(ts_BSSMAP_ComplL3(g_pars.cell_id, l3_enc))));</span><br><span>   alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {}</span><br><span style="color: hsl(0, 100%, 40%);">-     [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span style="color: hsl(120, 100%, 40%);">+    [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {}</span><br><span style="color: hsl(120, 100%, 40%);">+     [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span>                     setverdict(fail, "DISC.ind from SCCP");</span><br><span>                    mtc.stop;</span><br><span>            }</span><br><span>@@ -386,12 +386,12 @@</span><br><span>    /* FIXME: there could be pending SMS or other common procedures by the MSC, let's ignore them */</span><br><span>         BSSAP.receive(tr_BSSMAP_ClearCommand);</span><br><span>       BSSAP.send(ts_BSSMAP_ClearComplete);</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</span><br><span>         setverdict(pass);</span><br><span> }</span><br><span> </span><br><span> function f_foo() runs on BSC_ConnHdlr{</span><br><span style="color: hsl(0, 100%, 40%);">-    /* SCCP CC handled by BSSMAP_Emulation_CT.main() */</span><br><span style="color: hsl(120, 100%, 40%);">+   /* SCCP CC handled by RAN_Emulation_CT.main() */</span><br><span>     /* Expect auth, if enabled */</span><br><span> </span><br><span>    /* TODO: ISD */</span><br><span>@@ -475,7 +475,7 @@</span><br><span>        var MNCC_PDU mncc;</span><br><span>   var MgcpCommand mgcp_cmd;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   f_establish_fully(EST_TYPE_PAG_RESP);</span><br><span> </span><br><span>@@ -557,7 +557,7 @@</span><br><span>      f_mt_call_initate(cpars);</span><br><span> </span><br><span>        /* BSC <- MSC: Expect paging. FIXME: By TMSI or not? */</span><br><span style="color: hsl(0, 100%, 40%);">-      f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi));</span><br><span> </span><br><span>    /* Complete the call via BSSAP */</span><br><span>@@ -693,7 +693,7 @@</span><br><span>      interleave {</span><br><span>         [] BSSAP.receive(t_clear) {</span><br><span>          BSSAP.send(ts_BSSMAP_ClearComplete);</span><br><span style="color: hsl(0, 100%, 40%);">-            BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+                BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND);</span><br><span>                 }</span><br><span>    [] MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {</span><br><span>           if (respond_to_dlcx) {</span><br><span>@@ -793,7 +793,7 @@</span><br><span>         [] BSSAP.receive(tr_BSSMAP_ClearCommand) {</span><br><span>           BSSAP.send(ts_BSSMAP_ClearComplete);</span><br><span>                 alt {</span><br><span style="color: hsl(0, 100%, 40%);">-           [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span style="color: hsl(120, 100%, 40%);">+            [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {</span><br><span>                     setverdict(pass);</span><br><span>                    }</span><br><span>            [] BSSAP.receive {</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index 13d1ddb..b6b1038 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -36,10 +36,10 @@</span><br><span> import from IPA_Emulation all;</span><br><span> </span><br><span> import from BSSAP_Types all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSAP_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Adapter all;</span><br><span> import from BSSAP_CodecPort all;</span><br><span> import from BSSMAP_Templates all;</span><br><span style="color: hsl(0, 100%, 40%);">-import from BSSMAP_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RAN_Emulation all;</span><br><span> import from BSC_ConnectionHandler all;</span><br><span> </span><br><span> import from SGsAP_Templates all;</span><br><span>@@ -66,7 +66,7 @@</span><br><span> import from TCCConversion_Functions all;</span><br><span> </span><br><span> const integer NUM_BSC := 2;</span><br><span style="color: hsl(0, 100%, 40%);">-type record of BSSAP_Configuration BSSAP_Configurations;</span><br><span style="color: hsl(120, 100%, 40%);">+type record of RAN_Configuration RAN_Configurations;</span><br><span> </span><br><span> /* Needed for SGsAP SMS */</span><br><span> import from MobileL3_SMS_Types all;</span><br><span>@@ -74,7 +74,7 @@</span><br><span> type component MTC_CT extends CTRL_Adapter_CT {</span><br><span>         var boolean g_initialized := false;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- var BSSAP_Adapter g_bssap[NUM_BSC];</span><br><span style="color: hsl(120, 100%, 40%);">+   var RAN_Adapter g_bssap[NUM_BSC];</span><br><span> </span><br><span>        /* no 'adapter_CT' for MNCC or GSUP */</span><br><span>       var MNCC_Emulation_CT vc_MNCC;</span><br><span>@@ -121,7 +121,7 @@</span><br><span>         charstring mp_mme_name := "mmec01.mmegi0001.mme.epc.mnc070.mcc901.3gppnetwork.org";</span><br><span>        charstring mp_vlr_name := "vlr.example.net";</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      BSSAP_Configurations mp_bssap_cfg := {</span><br><span style="color: hsl(120, 100%, 40%);">+        RAN_Configurations mp_bssap_cfg := {</span><br><span>                 {</span><br><span>                    sccp_service_type := "mtp3_itu",</span><br><span>                   sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" },</span><br><span>@@ -277,7 +277,7 @@</span><br><span> </span><br><span>        for (var integer i := 0; i < num_bsc; i := i + 1) {</span><br><span>               if (isbound(mp_bssap_cfg[i])) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 f_bssap_init(g_bssap[i], mp_bssap_cfg[i], "MSC_Test_" & int2str(i), BSC_BssmapOps);</span><br><span style="color: hsl(120, 100%, 40%);">+                     f_bssap_init(g_bssap[i], mp_bssap_cfg[i], "MSC_Test_" & int2str(i), BSC_RanOps);</span><br><span>                       f_bssap_start(g_bssap[i]);</span><br><span>           } else {</span><br><span>                     testcase.stop("missing BSSAP configuration");</span><br><span>@@ -522,8 +522,8 @@</span><br><span> </span><br><span>    vc_conn := BSC_ConnHdlr.create(id);</span><br><span>  /* BSSMAP part / A interface */</span><br><span style="color: hsl(0, 100%, 40%);">- connect(vc_conn:BSSAP, g_bssap[0].vc_BSSMAP:CLIENT);</span><br><span style="color: hsl(0, 100%, 40%);">-    connect(vc_conn:BSSAP_PROC, g_bssap[0].vc_BSSMAP:PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+       connect(vc_conn:BSSAP, g_bssap[0].vc_RAN:CLIENT);</span><br><span style="color: hsl(120, 100%, 40%);">+     connect(vc_conn:BSSAP_PROC, g_bssap[0].vc_RAN:PROC);</span><br><span>         /* MNCC part */</span><br><span>      connect(vc_conn:MNCC, vc_MNCC:MNCC_CLIENT);</span><br><span>  connect(vc_conn:MNCC_PROC, vc_MNCC:MNCC_PROC);</span><br><span>@@ -804,7 +804,7 @@</span><br><span>                         mtc.stop;</span><br><span>                    repeat;</span><br><span>              }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {}</span><br><span style="color: hsl(120, 100%, 40%);">+   [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {}</span><br><span>    }</span><br><span>    setverdict(pass);</span><br><span> }</span><br><span>@@ -834,7 +834,7 @@</span><br><span> </span><br><span>     f_sleep(1.0);</span><br><span>        /* send clear request in the middle of the LU */</span><br><span style="color: hsl(0, 100%, 40%);">-        BSSAP.send(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span style="color: hsl(120, 100%, 40%);">+   BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);</span><br><span>    setverdict(pass);</span><br><span>    f_sleep(1.0);</span><br><span> }</span><br><span>@@ -1197,10 +1197,10 @@</span><br><span>         timer T := 5.0;</span><br><span>      T.start;</span><br><span>     alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {}</span><br><span style="color: hsl(120, 100%, 40%);">+   [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {}</span><br><span>    /* Expect LU REJECT with Cause == Illegal MS */</span><br><span>      [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; }</span><br><span style="color: hsl(0, 100%, 40%);">- [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; }</span><br><span style="color: hsl(120, 100%, 40%);">+  [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; }</span><br><span>   [] as_clear_cmd_compl_disc();</span><br><span>        [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release");</span><br><span>@@ -1236,9 +1236,9 @@</span><br><span>      T.start;</span><br><span>     alt {</span><br><span>        /* Immediate disconnect */</span><br><span style="color: hsl(0, 100%, 40%);">-      [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {}</span><br><span style="color: hsl(120, 100%, 40%);">+   [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {}</span><br><span>    [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; }</span><br><span style="color: hsl(0, 100%, 40%);">- [] BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; }</span><br><span style="color: hsl(120, 100%, 40%);">+  [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; }</span><br><span>   [] as_clear_cmd_compl_disc();</span><br><span>        [] T.timeout {</span><br><span>               setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release");</span><br><span>@@ -1435,7 +1435,7 @@</span><br><span>      } else {</span><br><span>             tmsi := 'FFFFFFFF'O;</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_bssmap_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span> </span><br><span>  /* Allocate call reference and send SETUP via MNCC to MSC */</span><br><span>         cpars.mncc_callref := f_rnd_int(2147483648);</span><br><span>@@ -2010,7 +2010,7 @@</span><br><span>         } else {</span><br><span>             tmsi := 'FFFFFFFF'O;</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_bssmap_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span> </span><br><span>  f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");</span><br><span> </span><br><span>@@ -2049,7 +2049,7 @@</span><br><span>     } else {</span><br><span>             tmsi := 'FFFFFFFF'O;</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_bssmap_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span> </span><br><span>  f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");</span><br><span> </span><br><span>@@ -2316,9 +2316,9 @@</span><br><span> </span><br><span>         /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span>    if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span>       }</span><br><span> </span><br><span>        var template GSUP_PDU mt_forwardSM_res := tr_GSUP_MT_FORWARD_SM_RES(</span><br><span>@@ -2380,9 +2380,9 @@</span><br><span> </span><br><span>     /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span>    if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span>       }</span><br><span> </span><br><span>        var template GSUP_PDU mt_forwardSM_err := tr_GSUP_MT_FORWARD_SM_ERR(</span><br><span>@@ -2446,9 +2446,9 @@</span><br><span> </span><br><span>     /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span>    if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span>       }</span><br><span> </span><br><span>        /* Submit the 1st MT SMS on GSUP */</span><br><span>@@ -2558,9 +2558,9 @@</span><br><span> </span><br><span>      /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span>    if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span>       }</span><br><span> </span><br><span>        /* Send CM Service Request for MO SMMA */</span><br><span>@@ -2661,9 +2661,9 @@</span><br><span> </span><br><span>        /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span>    if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span>       }</span><br><span> </span><br><span>        var template GSUP_PDU mt_forwardSM_res := tr_GSUP_MT_FORWARD_SM_RES(</span><br><span>@@ -2818,7 +2818,7 @@</span><br><span>         } else {</span><br><span>             tmsi := 'FFFFFFFF'O;</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_bssmap_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span> </span><br><span>  var SmsParameters spars := valueof(t_SmsPars);</span><br><span>       /* TODO: test with more intelligent user data; test different coding schemes */</span><br><span>@@ -2969,7 +2969,7 @@</span><br><span>      /* Perform location update */</span><br><span>        f_perform_lu();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   /* We need to inspect GSUP activity */</span><br><span>       f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span>@@ -3582,7 +3582,7 @@</span><br><span>  /* Trigger a paging request and expect the paging on BSSMAP, this is</span><br><span>          * to make sure that pagings are sent throught the A-Interface again</span><br><span>          * and not throught the SGs interface.*/</span><br><span style="color: hsl(0, 100%, 40%);">-        f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span>       f_vty_transceive(MSCVTY, "subscriber imsi " & hex2str(g_pars.imsi) & " paging");</span><br><span> </span><br><span>     alt {</span><br><span>diff --git a/msc/gen_links.sh b/msc/gen_links.sh</span><br><span>index 117564e..a29118a 100755</span><br><span>--- a/msc/gen_links.sh</span><br><span>+++ b/msc/gen_links.sh</span><br><span>@@ -89,7 +89,7 @@</span><br><span> FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn MNCC_Types.ttcn MNCC_EncDec.cc MNCC_CodecPort.ttcn mncc.h MNCC_Emulation.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "</span><br><span> FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc GSUP_Types.ttcn GSUP_Emulation.ttcn "</span><br><span> FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn L3_Templates.ttcn L3_Common.ttcn "</span><br><span style="color: hsl(0, 100%, 40%);">-FILES+="BSSMAP_Emulation.ttcn BSSAP_CodecPort.ttcn BSSMAP_Templates.ttcn BSSAP_Adapter.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_Emulation.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="RAN_Emulation.ttcn BSSAP_CodecPort.ttcn BSSMAP_Templates.ttcn RAN_Adapter.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_Emulation.ttcn "</span><br><span> FILES+="RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunctDef.cc "</span><br><span> FILES+="MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunctDef.cc "</span><br><span> FILES+="SMPP_CodecPort.ttcn SMPP_CodecPort_CtrlFunct.ttcn SMPP_CodecPort_CtrlFunctDef.cc SMPP_Emulation.ttcn SMPP_Templates.ttcn "</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13650">change 13650</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/13650"/><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: Iecbcb0c6c136baad9460eca40606bb4010d8882d </div>
<div style="display:none"> Gerrit-Change-Number: 13650 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>