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
diff --git a/library/BSSAP_Adapter.ttcn b/library/RAN_Adapter.ttcn
similarity index 77%
rename from library/BSSAP_Adapter.ttcn
rename to 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 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 @@
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 @@
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 @@
}
-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 @@
/* 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 @@
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 @@
//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
similarity index 82%
rename from library/BSSMAP_Emulation.ttcn
rename to 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 @@
* 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 @@
/* 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 @@
/* 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 @@
/* 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 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 @@
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 @@
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 @@
}
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 @@
/* 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 @@
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 @@
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 @@
}
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 @@
}
}
-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 @@
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 @@
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 @@
}
/* 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 @@
}
}
- 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 @@
/* 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 @@
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 @@
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 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 @@
}
}
-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 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 @@
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 @@
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 @@
/* 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 @@
}
/* 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 @@
/* 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 @@
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 @@
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 @@
}
- [] 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 @@
/* 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 @@
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 @@
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 @@
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:{?,?,?}) {};
}
}