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