pespin has uploaded this change for review.
RAN_Emulation: Rename RAN_ConnHdlr.BSSAP* ports to RAN_CONN
That port handles a lot more than BSSAP. Naming it BSSAP makes it really
confusing for instance when using it to handle RANAP in the Iu stack.
Change-Id: I75dc5b8b6db912b2eb69311612dbbb0a454374c3
---
M bsc-nat/BSC_MS_ConnectionHandler.ttcn
M bsc-nat/BSC_MS_Simulation.ttcn
M bsc-nat/MSC_ConnectionHandler.ttcn
M bsc-nat/MSC_Simulation.ttcn
M hnbgw/ConnHdlr.ttcn
M hnbgw/HNBGW_Tests.ttcn
M library/RAN_Emulation.ttcnpp
M msc/BSC_ConnectionHandler.ttcn
M msc/MSC_Tests.ttcn
M msc/MSC_Tests_ASCI.ttcn
M msc/MSC_Tests_Iu.ttcn
M sgsn/BSSGP_ConnHdlr.ttcn
M sgsn/SGSN_Tests.ttcn
M sgsn/SGSN_Tests_Iu.ttcn
14 files changed, 461 insertions(+), 461 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/41488/1
diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn
index 882caf8..96e4ab6 100644
--- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn
+++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn
@@ -120,20 +120,20 @@
bssap := bssap
}
g_state := BSC_STATE_WAIT_ASS_REQ;
- BSSAP.send(creq);
+ RAN_CONN.send(creq);
while (true) {
alt {
/* new SCCP-level connection indication from BSC */
- [g_state == BSC_STATE_WAIT_ASS_REQ] BSSAP.receive(tr_BSSMAP_AssignmentReq) -> value bssap {
+ [g_state == BSC_STATE_WAIT_ASS_REQ] RAN_CONN.receive(tr_BSSMAP_AssignmentReq) -> value bssap {
/* FIXME: Read CIC */
/* respond with ASSIGNMENT COMPL */
g_state := BSC_STATE_WAIT_CRCX;
- BSSAP.send(ts_BSSMAP_AssignmentComplete(bssap.pdu.bssmap.assignmentRequest.circuitIdentityCode));
+ RAN_CONN.send(ts_BSSMAP_AssignmentComplete(bssap.pdu.bssmap.assignmentRequest.circuitIdentityCode));
}
/* CRCX -> OK */
- [g_state == BSC_STATE_WAIT_CRCX] BSSAP.receive(tr_CRCX) -> value mgcp_cmd {
+ [g_state == BSC_STATE_WAIT_CRCX] RAN_CONN.receive(tr_CRCX) -> value mgcp_cmd {
/* FIXME: proper SDP parameters */
g_sdp := valueof(ts_SDP("127.0.0.1", "127.0.0.1", "foo", "21", 1000, { "98" },
{ valueof(ts_SDP_rtpmap(98, "AMR/8000")),
@@ -152,60 +152,60 @@
} else {
mgcp_resp := ts_CRCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp);
}
- BSSAP.send(valueof(mgcp_resp));
+ RAN_CONN.send(valueof(mgcp_resp));
}
/* MDCX -> OK */
- [g_state == BSC_STATE_WAIT_MDCX] BSSAP.receive(tr_MDCX) -> value mgcp_cmd {
+ [g_state == BSC_STATE_WAIT_MDCX] RAN_CONN.receive(tr_MDCX) -> value mgcp_cmd {
/* FIXME: verify if local part of endpoint name matches CIC */
/* respond with MDCX_ACK */
g_state := BSC_STATE_WAIT_MDCX2;
- BSSAP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
+ RAN_CONN.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
}
/* MDCX -> OK */
- [g_state == BSC_STATE_WAIT_MDCX2] BSSAP.receive(tr_MDCX) -> value mgcp_cmd {
+ [g_state == BSC_STATE_WAIT_MDCX2] RAN_CONN.receive(tr_MDCX) -> value mgcp_cmd {
/* FIXME: verify if local part of endpoint name matches CIC */
/* respond with MDCX_ACK */
g_state := BSC_STATE_WAIT_CLEAR_CMD;
- BSSAP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
+ RAN_CONN.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
}
/* CLEAR COMMAND from MSC; respond with CLEAR COMPLETE) */
- [g_state == BSC_STATE_WAIT_CLEAR_CMD] BSSAP.receive(tr_BSSMAP_ClearCommand) -> value bssap {
+ [g_state == BSC_STATE_WAIT_CLEAR_CMD] RAN_CONN.receive(tr_BSSMAP_ClearCommand) -> value bssap {
g_state := BSC_STATE_WAIT_DLCX;
- BSSAP.send(ts_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_BSSMAP_ClearComplete);
}
/* DLCX -> OK */
- [g_state == BSC_STATE_WAIT_DLCX] BSSAP.receive(tr_DLCX) -> value mgcp_cmd {
+ [g_state == BSC_STATE_WAIT_DLCX] RAN_CONN.receive(tr_DLCX) -> value mgcp_cmd {
/* FIXME: verify if local part of endpoint name matches CIC */
g_state := BSC_STATE_WAIT_DISC_IND;
- BSSAP.send(ts_DLCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id));
+ RAN_CONN.send(ts_DLCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id));
}
- [] BSSAP.receive(tr_BSSAP_DTAP) -> value bssap {
+ [] RAN_CONN.receive(tr_BSSAP_DTAP) -> value bssap {
/* FIXME: verify if local part of endpoint name matches CIC */
var PDU_ML3_MS_NW l3 := dec_PDU_ML3_MS_NW(bssap.pdu.dtap);
log("Unhandled DTAP ", l3);
}
- [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [g_state == BSC_STATE_WAIT_DISC_IND] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(pass);
self.stop;
}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND) {
}
/* disconnect in invalid state */
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(fail);
self.stop;
}
- [] BSSAP.receive(PDU_BSSAP:?) -> value bssap {
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value bssap {
log("Received unhandled SCCP-CO: ", bssap);
}
}
diff --git a/bsc-nat/BSC_MS_Simulation.ttcn b/bsc-nat/BSC_MS_Simulation.ttcn
index 0a057a3..7ff3257 100644
--- a/bsc-nat/BSC_MS_Simulation.ttcn
+++ b/bsc-nat/BSC_MS_Simulation.ttcn
@@ -52,7 +52,7 @@
/* helper function to create and connect a BSC_MS_ConnHdlr component */
private function f_connect_handler(inout BSC_MS_ConnHdlr vc_conn) runs on BSC_CT {
/* connect client BSSAP port to BSSAP dispatcher */
- connect(vc_conn:BSSAP, vc_BSSMAP:CLIENT);
+ connect(vc_conn:RAN_CONN, vc_BSSMAP:CLIENT);
}
private function f_start_handler(void_fn_bsc_ms fn, charstring id, template (omit) BSC_MS_TestHdlrParams pars := omit)
diff --git a/bsc-nat/MSC_ConnectionHandler.ttcn b/bsc-nat/MSC_ConnectionHandler.ttcn
index 0fe7c23..8b3b04a 100644
--- a/bsc-nat/MSC_ConnectionHandler.ttcn
+++ b/bsc-nat/MSC_ConnectionHandler.ttcn
@@ -45,7 +45,7 @@
/* helper function to create and connect a MSC_ConnHdlr component */
private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on RAN_Emulation_CT {
/* connect client BSSAP port to BSSAP dispatcher */
- connect(vc_conn:BSSAP, self:CLIENT);
+ connect(vc_conn:RAN_CONN, self:CLIENT);
}
private function f_msc_start_handler(void_fn_msc fn, charstring id, template (omit) MSC_TestHdlrParams pars := omit)
@@ -140,66 +140,66 @@
var PDU_BSSAP bssap;
alt {
/* new SCCP-level connection indication from BSC */
- [g_state == MSC_STATE_NONE] BSSAP.receive(tr_BSSMAP_ComplL3) -> value bssap {
+ [g_state == MSC_STATE_NONE] RAN_CONN.receive(tr_BSSMAP_ComplL3) -> value bssap {
/* respond with ASSIGNMENT CMD */
g_state := MSC_STATE_WAIT_ASS_COMPL;
- BSSAP.send(ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, g_pars.e1_timeslot)));
+ RAN_CONN.send(ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, g_pars.e1_timeslot)));
}
- [g_state == MSC_STATE_WAIT_ASS_COMPL] BSSAP.receive(tr_BSSMAP_AssignmentComplete(?,*)) {
+ [g_state == MSC_STATE_WAIT_ASS_COMPL] RAN_CONN.receive(tr_BSSMAP_AssignmentComplete(?,*)) {
/* FIXME: Send MGCP CRCX */
g_state := MSC_STATE_WAIT_CRCX_ACK;
var MgcpTransId trans_id := f_mgcp_alloc_tid();
//template SDP_Message sdp := omit;
- BSSAP.send(ts_CRCX(trans_id, g_ep_name, "recvonly", g_call_id)); //, sdp));
+ RAN_CONN.send(ts_CRCX(trans_id, g_ep_name, "recvonly", g_call_id)); //, sdp));
}
/*
- [] BSSAP.receive(tr_BSSMAP_AssignmentFail) {
+ [] RAN_CONN.receive(tr_BSSMAP_AssignmentFail) {
}
*/
/* receive CRCX ACK: transmit MDCX */
- [g_state == MSC_STATE_WAIT_CRCX_ACK] BSSAP.receive(tr_CRCX_ACK) -> value mgcp_rsp {
+ [g_state == MSC_STATE_WAIT_CRCX_ACK] RAN_CONN.receive(tr_CRCX_ACK) -> value mgcp_rsp {
/* extract connection ID */
g_mgcp_conn_id := f_MgcpResp_extract_conn_id(mgcp_rsp);
g_state := MSC_STATE_WAIT_MDCX_ACK;
var MgcpTransId trans_id := f_mgcp_alloc_tid();
- BSSAP.send(ts_MDCX(trans_id, g_ep_name, "sendrecv", g_call_id, g_mgcp_conn_id));
+ RAN_CONN.send(ts_MDCX(trans_id, g_ep_name, "sendrecv", g_call_id, g_mgcp_conn_id));
}
/* receive MDCX ACK: wait + transmit CLEAR COMMAND */
- [g_state == MSC_STATE_WAIT_MDCX_ACK] BSSAP.receive(tr_CRCX_ACK) -> value mgcp_rsp {
+ [g_state == MSC_STATE_WAIT_MDCX_ACK] RAN_CONN.receive(tr_CRCX_ACK) -> value mgcp_rsp {
g_state := MSC_STATE_WAIT_CLEAR_COMPL
- BSSAP.send(ts_BSSMAP_ClearCommand(9)); /* Cause: call control */
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(9)); /* Cause: call control */
}
/* CLEAR COMPLETE from BSS (response to CLEAR COMMAND) */
- [g_state == MSC_STATE_WAIT_CLEAR_COMPL] BSSAP.receive(tr_BSSMAP_ClearComplete) {
+ [g_state == MSC_STATE_WAIT_CLEAR_COMPL] RAN_CONN.receive(tr_BSSMAP_ClearComplete) {
/* send DLCX */
g_state := MSC_STATE_WAIT_DLCX_ACK;
var MgcpTransId trans_id := f_mgcp_alloc_tid();
- BSSAP.send(ts_DLCX(trans_id, g_ep_name, g_call_id));
+ RAN_CONN.send(ts_DLCX(trans_id, g_ep_name, g_call_id));
}
- [g_state == MSC_STATE_WAIT_DLCX_ACK] BSSAP.receive(tr_DLCX_ACK) {
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ [g_state == MSC_STATE_WAIT_DLCX_ACK] RAN_CONN.receive(tr_DLCX_ACK) {
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
setverdict(pass);
self.stop;
}
/* TODO: CLEAR REQUEST from BSS */
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(fail);
self.stop;
}
- [] BSSAP.receive(PDU_BSSAP:?) -> value bssap {
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value bssap {
log("Received unhandled SCCP-CO: ", bssap);
}
/* Guard timer has expired, close connection */
[] T.timeout {
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_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 14229cc..88943d2 100755
--- a/bsc-nat/MSC_Simulation.ttcn
+++ b/bsc-nat/MSC_Simulation.ttcn
@@ -8,7 +8,7 @@
import from SCCPasp_Types all;
import from SCCP_Emulation all;
-/*
+/*
import from MobileL3_Types all;
import from MobileL3_CommonIE_Types all;
import from L3_Templates all;
diff --git a/hnbgw/ConnHdlr.ttcn b/hnbgw/ConnHdlr.ttcn
index d9ba5d5..91c7878 100644
--- a/hnbgw/ConnHdlr.ttcn
+++ b/hnbgw/ConnHdlr.ttcn
@@ -293,8 +293,8 @@
function f_create_ranap_exp(octetstring l3_enc) runs on ConnHdlr {
- BSSAP_PROC.call(RAN_register:{l3_enc, self}) {
- [] BSSAP_PROC.getreply(RAN_register:{?, ?}) {};
+ RAN_CONN_PROC.call(RAN_register:{l3_enc, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_register:{?, ?}) {};
}
}
@@ -334,16 +334,16 @@
timer T := 5.0;
T.start;
alt {
- [] BSSAP.receive(exp_rx) -> value rx {
+ [] RAN_CONN.receive(exp_rx) -> value rx {
setverdict(pass);
}
- [] BSSAP.receive(RANAP_PDU:?) -> value rx {
+ [] RAN_CONN.receive(RANAP_PDU:?) -> value rx {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
- log2str("Got an unexpected RANAP message on BSSAP port: ", rx, " vs exp ", exp_rx));
+ log2str("Got an unexpected RANAP message on RAN_CONN port: ", rx, " vs exp ", exp_rx));
}
[] T.timeout {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
- log2str("Timeout waiting for RANAP on BSSAP port: ", exp_rx));
+ log2str("Timeout waiting for RANAP on RAN_CONN port: ", exp_rx));
}
}
T.stop;
@@ -372,7 +372,7 @@
exp_rx := tx;
}
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
return f_rua_expect(exp_rx)
}
@@ -423,7 +423,7 @@
if (g_pars.expect_separate_sccp_cr) {
/* Acknowledge the empty SCCP CR. RAN_Emulation does the confirmation, no need to respond. */
- BSSAP.receive(tr_RANAP_Conn_Ind());
+ RAN_CONN.receive(tr_RANAP_Conn_Ind());
}
/* expect to receive it on the Iu side */
@@ -587,13 +587,13 @@
f_iuh2iu_disconnect(tx, RUA_IEs.Cause:{radioNetwork:=normal});
/* Once CN receives Iu-ReleaseComplete, it tears down the SCCP conn under Iu: */
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ(sccp_par_reason_end_user_originated));
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ(sccp_par_reason_end_user_originated));
/* There's no signalling from lower layers regarding when RLC is
* received, hence only make sure the IUT is not sending an RLSD on its own
* after a timeout, which would mean it didn't process our RLSD */
T.start(2.0);
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Rx Unexpected RLSD to our RLSD");
}
[] T.timeout {
@@ -714,7 +714,7 @@
/* Send RAB Assignment Request */
rab_sml := ts_RAB_SML(t_RAB_id(23), f_ts_RAB_TLA(g_pars.mgcp_pars.cn_rtp_ip), t_RAB_binding_port(g_pars.mgcp_pars.cn_rtp_port));
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
T.start;
/* Handle MGCP CRCX */
@@ -830,7 +830,7 @@
var template RAB_SetupOrModifyList rab_sml;
rab_sml := ts_RAB_SML_ps(t_RAB_id(23), f_ts_RAB_TLA(g_pars.gtp_pars.core.remote.addr), g_pars.gtp_pars.core.remote.teid);
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
/* Expect PFCP Session Establishment Request. */
m := f_pfcp_expect(tr_PFCP_Session_Est_Req());
@@ -907,7 +907,7 @@
var template RAB_SetupOrModifyList rab_sml;
rab_sml := ts_RAB_SML_ps(t_RAB_id(23), f_ts_RAB_TLA(g_pars.gtp_pars.core.remote.addr), g_pars.gtp_pars.core.remote.teid);
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
/* Expect on Iuh: unmodified RAB Assignment Request */
rx := valueof(ts_RANAP_RabAssReq(rab_sml));
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 18c1eb5..d4df7e2 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -568,8 +568,8 @@
connect(vc_conn:RUA, vc_RUA[pars.hnb_idx]:CLIENT);
/* MSC or SGSN */
- connect(vc_conn:BSSAP, g_cn[pars.cn_idx].vc_RAN:CLIENT);
- connect(vc_conn:BSSAP_PROC, g_cn[pars.cn_idx].vc_RAN:PROC);
+ connect(vc_conn:RAN_CONN, g_cn[pars.cn_idx].vc_RAN:CLIENT);
+ connect(vc_conn:RAN_CONN_PROC, g_cn[pars.cn_idx].vc_RAN:PROC);
/* MGCP part */
connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT);
@@ -1159,7 +1159,7 @@
/* Send RAB Release */
tx := valueof(ts_RANAP_RabAssReq(rab_rl := ts_RAB_RL(t_RAB_id(23), g_pars.rab_rel_cause)));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
T.start;
@@ -1222,7 +1222,7 @@
f_ts_RAB_TLA(g_pars.mgcp_pars.cn_rtp_ip),
t_RAB_binding_port(g_pars.mgcp_pars.cn_rtp_port));
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
/* Ignore MGCP CRCX */
alt {
@@ -1230,7 +1230,7 @@
log("Ignoreing CRCX1", mgcp_cmd);
repeat;
}
- [] BSSAP.receive(tr_RANAP_IuReleaseRequest(?)) { }
+ [] RAN_CONN.receive(tr_RANAP_IuReleaseRequest(?)) { }
[] T.timeout {
setverdict(fail, "Timeout waiting for IuRelease");
}
@@ -1340,7 +1340,7 @@
f_iuh2iu_connect(f_build_initial_ue(g_pars));
/* This triggers a tx of SCCP CREF CN -> HNBGW: */
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ(sccp_par_reason_end_user_failure));
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ(sccp_par_reason_end_user_failure));
/* HNBGW disconnects the session on the RUA side as a result: */
RUA.receive(RUA_Disc_Ind:?);
}
@@ -1377,10 +1377,10 @@
f_sleep(1.0);
/* Now tx SCCP CC from CN to HNBGW: */
- BSSAP.send(ts_MSC_CONN_PRIM_CONNECT_RES);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_CONNECT_RES);
/* now that SCCP conn is connected, HNBGW should tear it down because the RUA conn was released in previous step: */
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
/* Let RAN_Emulation some time to answer RLSD with RLC: */
f_sleep(1.0);
}
@@ -1418,7 +1418,7 @@
f_create_rab_cs();
RUA.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted));
- BSSAP.receive(tr_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted));
+ RAN_CONN.receive(tr_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted));
RUA.send(RUA_Disc_Req:{{misc:=unspecified}, omit});
@@ -1436,10 +1436,10 @@
* before it receives the RLSD from HNBGW, hence we don't send it. If we
* sent it, it would be ignored by HNBGW since the RUA conn is already
* disconnected:
- * BSSAP.send(ts_RANAP_IuReleaseCommand(ts_RanapCause_radio_rab_preempted));
+ * RAN_CONN.send(ts_RANAP_IuReleaseCommand(ts_RanapCause_radio_rab_preempted));
*/
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
/* Let RAN_Emulation some time to answer RLSD with RLC: */
f_sleep(1.0);
}
@@ -1464,7 +1464,7 @@
f_create_rab_ps();
RUA.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted));
- BSSAP.receive(tr_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted));
+ RAN_CONN.receive(tr_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted));
RUA.send(RUA_Disc_Req:{{misc:=unspecified}, omit});
@@ -1477,10 +1477,10 @@
* before it receives the RLSD from HNBGW, hence we don't send it. If we
* sent it, it would be ignored by HNBGW since the RUA conn is already
* disconnected:
- * BSSAP.send(ts_RANAP_IuReleaseCommand(ts_RanapCause_radio_rab_preempted));
+ * RAN_CONN.send(ts_RANAP_IuReleaseCommand(ts_RanapCause_radio_rab_preempted));
*/
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
/* Let RAN_Emulation some time to answer RLSD with RLC: */
f_sleep(1.0);
}
@@ -1513,7 +1513,7 @@
f_sleep(1.0);
/* Now tx SCCP CC from CN to HNBGW: */
- BSSAP.send(ts_MSC_CONN_PRIM_CONNECT_RES);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_CONNECT_RES);
/* now that SCCP conn is connected, HNBGW should forward the previously queued RANAP PDU: */
f_bssap_expect(tx_ranap_pdu);
@@ -1619,7 +1619,7 @@
/* Send RAB Release */
tx := valueof(ts_RANAP_RabAssReq(rab_rl := ts_RAB_RL(t_RAB_id(23), g_pars.rab_rel_cause)));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
f_rua_expect(tx);
tx := valueof(ts_RANAP_RabAssResp(rab_rl := ts_RAB_RLD(t_RAB_id(23))));
@@ -2171,7 +2171,7 @@
domain_ind := cs_domain;
}
var template (value) RANAP_PDU paging := ts_RANAP_Paging(domain_ind, imsi_hex2oct(imsi));
- BSSAP.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
+ RAN_CONN.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
/* TODO: Expect RUA ConnectionlessTransfer Paging (on all HNB).
* We could verify the Paging sent from osmo-hnbgw to RUA with some effort,
* but, this test does not care whether the Paging was forwarded to RUA or not, only that osmo-hnbgw *received*
@@ -2221,7 +2221,7 @@
}
var template (value) RANAP_PDU paging := ts_RANAP_Paging_temp_id(domain_ind, imsi_hex2oct(imsi),
ts_RANAP_TemporaryUE_ID_TMSI(tmsi));
- BSSAP.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
+ RAN_CONN.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
/* TODO: Expect RUA ConnectionlessTransfer Paging (on all HNB).
* We could verify the Paging sent from osmo-hnbgw to RUA with some effort,
* but, this test does not care whether the Paging was forwarded to RUA or not, only that osmo-hnbgw *received*
@@ -2269,7 +2269,7 @@
domain_ind := cs_domain;
}
var template (value) RANAP_PDU paging := ts_RANAP_Paging_pag_area_id(domain_ind, imsi_hex2oct(imsi), pag_area_id);
- BSSAP.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
+ RAN_CONN.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
/* TODO: Expect RUA ConnectionlessTransfer Paging (on subset of HNB).
* We could verify the Paging sent from osmo-hnbgw to RUA with some effort,
* but, this test does not care whether the Paging was forwarded to RUA or not, only that osmo-hnbgw *received*
@@ -2321,7 +2321,7 @@
domain_ind := cs_domain;
}
var template (value) RANAP_PDU paging := ts_RANAP_Paging_pag_area_id(domain_ind, imsi_hex2oct(imsi), pag_area_id);
- BSSAP.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
+ RAN_CONN.send(ts_RANAP_UNITDATA_req(g_pars.sccp_addr_hnbgw, g_pars.sccp_addr_msc, paging));
/* TODO: Expect RUA ConnectionlessTransfer Paging (on subset of HNB).
* We could verify the Paging sent from osmo-hnbgw to RUA with some effort,
* but, this test does not care whether the Paging was forwarded to RUA or not, only that osmo-hnbgw *received*
@@ -2539,7 +2539,7 @@
/* We modified the SCCP configuration, expect disconnect of UE that was active on the aborted link. */
RUA.receive(RUA_Disc_Ind:?);
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
/* Would be nice to test reconnection on the other point-code, too. That would require another cnlink in
* osmo-stp.cfg and module parameters... */
@@ -2580,7 +2580,7 @@
user_plane_info := omit,
transport_layer_info := omit);
tx := valueof(ts_RANAP_RabAssReq(rab_sml));
- BSSAP.send(tx);
+ RAN_CONN.send(tx);
T.start;
/* Expect this secondary RAB Assignment to go through unchanged. */
@@ -2615,7 +2615,7 @@
function f_TC_cnpool_L3Compl_no_cn(boolean ps_domain) runs on test_CT {
/* Have one MSC and one SGSN but do not allow attaching.
- * I would use no MSCs and no SGSNs, but then we need many tweaks to allow test startup without any "BSSAP"
+ * I would use no MSCs and no SGSNs, but then we need many tweaks to allow test startup without any "RAN_CONN"
* port. */
f_init();
f_vty_cnlink_allow_attach(HNBGWVTY, ps_domain, {false});
diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp
index c8f5677..ff1b272 100644
--- a/library/RAN_Emulation.ttcnpp
+++ b/library/RAN_Emulation.ttcnpp
@@ -67,9 +67,9 @@
* derive themselves by means of the "extends" feature */
type component RAN_ConnHdlr {
/* port towards MSC Emulator core / SCCP connection dispatchar */
- port RAN_Conn_PT BSSAP;
+ port RAN_Conn_PT RAN_CONN;
/* procedure based port to register for incoming connections */
- port RAN_PROC_PT BSSAP_PROC;
+ port RAN_PROC_PT RAN_CONN_PROC;
}
/* we tell SCCP that connection (rx CR) was confirmed (tx CC) */
@@ -1683,8 +1683,8 @@
tmsi := valueof(tmsi_or_omit);
}
- BSSAP_PROC.call(RAN_register_imsi:{imsi, tmsi, self}) {
- [] BSSAP_PROC.getreply(RAN_register_imsi:{?,?,?}) {};
+ RAN_CONN_PROC.call(RAN_register_imsi:{imsi, tmsi, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_register_imsi:{?,?,?}) {};
}
}
@@ -1692,21 +1692,21 @@
function f_ran_unregister_imsi(hexstring imsi)
runs on RAN_ConnHdlr {
- BSSAP_PROC.call(RAN_unregister_imsi:{imsi, self}) {
- [] BSSAP_PROC.getreply(RAN_unregister_imsi:{?,?}) {};
+ RAN_CONN_PROC.call(RAN_unregister_imsi:{imsi, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_unregister_imsi:{?,?}) {};
}
}
/* register an expect with the BSSMAP core */
function f_ran_register_exp(octetstring l3_enc) runs on RAN_ConnHdlr {
- BSSAP_PROC.call(RAN_register:{l3_enc, self}) {
- [] BSSAP_PROC.getreply(RAN_register:{?, ?}) {};
+ RAN_CONN_PROC.call(RAN_register:{l3_enc, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_register:{?, ?}) {};
}
}
function f_ran_register_sccp_cr_without_payload() runs on RAN_ConnHdlr {
- BSSAP_PROC.call(RAN_register_sccp_cr_without_payload:{self}) {
- [] BSSAP_PROC.getreply(RAN_register_sccp_cr_without_payload:{?}) {};
+ RAN_CONN_PROC.call(RAN_register_sccp_cr_without_payload:{self}) {
+ [] RAN_CONN_PROC.getreply(RAN_register_sccp_cr_without_payload:{?}) {};
}
}
@@ -1714,27 +1714,27 @@
/* helper function for clients to register their IMSI/TMSI */
function f_ran_register_IuSigConId(IuSignallingConnectionIdentifier sigc_id)
runs on RAN_ConnHdlr {
- BSSAP_PROC.call(RAN_register_IuSigConId:{sigc_id, self}) {
- [] BSSAP_PROC.getreply(RAN_register_IuSigConId:{?,?}) {};
+ RAN_CONN_PROC.call(RAN_register_IuSigConId:{sigc_id, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_register_IuSigConId:{?,?}) {};
}
}
/* expect a IuReleaseCommand; Confirm that; expect SCCP-level N-DISCONNET.ind */
altstep as_iu_release_compl_disc() runs on RAN_ConnHdlr {
var RANAP_PDU ranap;
- [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) {
- BSSAP.send(ts_RANAP_IuReleaseComplete);
+ [] RAN_CONN.receive(tr_RANAP_IuReleaseCommand(?)) {
+ RAN_CONN.send(ts_RANAP_IuReleaseComplete);
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(pass);
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "Unexpected RANAP while waiting for SCCP Release ");
mtc.stop;
}
}
}
- [] BSSAP.receive(RANAP_PDU:?) -> value ranap{
+ [] RAN_CONN.receive(RANAP_PDU:?) -> value ranap{
setverdict(fail, "Unexpected RANAP while waiting for IuReleaseCommand", ranap);
mtc.stop;
}
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index a0f4d28..dd285dd 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -305,11 +305,11 @@
runs on BSC_ConnHdlr {
log("Sending COMPL L3: ", l3);
var octetstring l3_enc := enc_PDU_ML3_MS_NW(l3);
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,
+ RAN_CONN.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(tr_MSC_CONN_PRIM_CONF_IND) {}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND) {}
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(fail, "DISC.ind from SCCP");
mtc.stop;
}
@@ -355,10 +355,10 @@
};
ranap := valueof(ts_RANAP_initialUE_CS(lai, sai, l3_enc, sigc_id, grnc_id));
- BSSAP.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own, ranap));
+ RAN_CONN.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own, ranap));
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND) {}
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(fail, "DISC.ind from SCCP");
mtc.stop;
}
@@ -434,9 +434,9 @@
if (etype != EST_TYPE_PAG_RESP) {
/* explicit CM SERVICE ACCEPT */
if (g_pars.net.expect_attach_success) {
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC));
} else {
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ));
}
}
}
@@ -507,13 +507,13 @@
}
if (g_pars.net.expect_auth) {
if (g_pars.use_umts_aka) {
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ_3G(g_pars.vec.rand, g_pars.vec.autn)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ_3G(g_pars.vec.rand, g_pars.vec.autn)));
var OCT4 res := substr(g_pars.vec.res, 0, 4);
var OCT4 xres := substr(g_pars.vec.res, 4, 4);
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_3G(res, xres)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_3G(res, xres)));
} else {
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ(g_pars.vec.rand)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_2G(g_pars.vec.sres)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ(g_pars.vec.rand)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_2G(g_pars.vec.sres)));
}
}
}
@@ -530,11 +530,11 @@
/* MSC <-> BSC: ID req/rsp for IMEI */
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMEI))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMEI))) {
mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi)));
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {
setverdict(fail, "Expected ID REQ for IMEI DTAP MT message, but got: ", dtap_mt);
mtc.stop;
}
@@ -568,11 +568,11 @@
/* MSC <-> BSC: ID req/rsp for IMEISV */
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMEISV))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMEISV))) {
mi := valueof(ts_MI_IMEISV_LV(g_pars.imei));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi)));
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {
setverdict(fail, "Expected ID REQ for IMEISV DTAP MT message, but got: ", dtap_mt);
mtc.stop;
}
@@ -597,10 +597,10 @@
function f_expect_common_id() runs on BSC_ConnHdlr
{
if (g_pars.ran_is_geran) {
- BSSAP.receive(tr_BSSMAP_CommonId(g_pars.imsi,
+ RAN_CONN.receive(tr_BSSMAP_CommonId(g_pars.imsi,
f_tr_BSSMAP_LastUsedEUTRANPLMNId(g_pars.common_id_last_eutran_plmn)));
} else {
- BSSAP.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)));
+ RAN_CONN.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)));
}
}
@@ -669,19 +669,19 @@
f_get_expected_encryption(encryptionInformation, chosenEncryptionAlgorithm, kC128, a5_perm_alg);
alt {
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd2(encryptionInformation, kC128)) -> value pdu {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd2(encryptionInformation, kC128)) -> value pdu {
var OCT1 a5_chosen := f_best_alg_from_mask(a5_perm_alg);
var integer a5_nr := f_alg_from_mask(a5_chosen);
- BSSAP.send(ts_BSSMAP_CipherModeCompl(int2oct(a5_nr+1, 1)));
+ RAN_CONN.send(ts_BSSMAP_CipherModeCompl(int2oct(a5_nr+1, 1)));
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd2) -> value pdu {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd2) -> value pdu {
log("Error: Ciphering Mode Command with unexpected content. Expected: ",
tr_BSSMAP_CipherModeCmd2(encryptionInformation, kC128), " got: ", pdu);
setverdict(fail, "Ciphering Mode Command with unexpected content.");
mtc.stop;
}
- [] BSSAP.receive(tr_BSSMAP_ClassmarkRequest) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3))
+ [] RAN_CONN.receive(tr_BSSMAP_ClassmarkRequest) {
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3))
repeat;
}
}
@@ -691,26 +691,26 @@
private function f_mm_ciph_utran() runs on BSC_ConnHdlr
{
alt {
- [g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmdEnc(uia_algs := ?,
+ [g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmdEnc(uia_algs := ?,
uia_key := oct2bit(g_pars.vec.ik),
key_sts := ?,
uea_algs := ?,
uea_key := oct2bit(g_pars.vec.ck))) {
var IntegrityProtectionAlgorithm uia_chosen := 0; /*standard_UMTS_integrity_algorithm_UIA1*/
var EncryptionAlgorithm uea_chosen := 1; /*standard_UMTS_encryption_algorith_UEA1*/
- BSSAP.send(ts_RANAP_SecurityModeCompleteEnc(uia_chosen, uea_chosen));
+ RAN_CONN.send(ts_RANAP_SecurityModeCompleteEnc(uia_chosen, uea_chosen));
}
- [g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmdEnc(?,?,?,?,?)) {
+ [g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmdEnc(?,?,?,?,?)) {
setverdict(fail, "Invalid SecurityModeCommand (ciphering case)");
mtc.stop;
}
- [not g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
+ [not g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
uia_key := oct2bit(g_pars.vec.ik),
key_sts := ?)) {
var IntegrityProtectionAlgorithm uia_chosen := 0; /*standard_UMTS_integrity_algorithm_UIA1;*/
- BSSAP.send(ts_RANAP_SecurityModeComplete(uia_chosen));
+ RAN_CONN.send(ts_RANAP_SecurityModeComplete(uia_chosen));
}
- [not g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmd(?,?,?)) {
+ [not g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(?,?,?)) {
setverdict(fail, "Invalid SecurityModeCommand (non-ciphering case)");
mtc.stop;
}
@@ -735,7 +735,7 @@
function f_expect_mm_info() runs on BSC_ConnHdlr {
if (g_pars.mm_info == true) {
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_Info));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_Info));
}
}
@@ -850,7 +850,7 @@
if (g_pars.ran_is_geran) {
f_bssap_compl_l3(l3_lu);
if (g_pars.send_early_cm) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
} else {
f_ranap_initial_ue(l3_lu);
@@ -889,7 +889,7 @@
altstep as_accept_reject_lu(boolean expect_accept := true) runs on BSC_ConnHdlr {
var PDU_DTAP_MT dtap_mt;
- [expect_accept] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {
+ [expect_accept] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {
var PDU_ML3_LocationUpdateAccept lu_acc := dtap_mt.dtap.msgs.mm.locationUpdateAccept;
if (g_pars.net.expect_tmsi) {
if (not ispresent(lu_acc.mobileIdentityTLV) or
@@ -898,7 +898,7 @@
mtc.stop;
} else {
g_pars.tmsi := lu_acc.mobileIdentityTLV.mobileIdentityLV.mobileIdentityV.oddEvenInd_identity.tmsi_ptmsi.octets;
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
}
} else {
if (ispresent(lu_acc.mobileIdentityTLV) and
@@ -912,15 +912,15 @@
f_expect_mm_info();
setverdict(pass);
}
- [expect_accept] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [expect_accept] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(fail, "Expected LU ACK, but received LU REJ");
mtc.stop;
}
- [not expect_accept] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [not expect_accept] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(pass);
}
- [not expect_accept] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {
+ [not expect_accept] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {
setverdict(fail, "Expected LU REJ, but received LU ACK");
mtc.stop;
}
@@ -932,10 +932,10 @@
T.start(Tval);
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej(cause))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej(cause))) {
setverdict(pass);
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(?)) -> value dtap_mt {
setverdict(fail, "Expected LU reject BSSAP message, got: ", dtap_mt);
}
[] T.timeout {
@@ -1134,16 +1134,16 @@
/* Remove 'or Misc_Helpers.f_osmo_repo_is("latest")' after osmo-msc
* 1.15.0 is released with I7046e9244fd9d4301ee2c4df1147a619f753739c */
if (cpars.csd or Misc_Helpers.f_osmo_repo_is("latest")) {
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party, *)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party, *)));
} else {
/* Speech: check bearer capabilities against ts_Bcap_voice_mt
* to ensure proper spare bits are sent for radio channel
* requirement and that the speech list is omitted (OS#6657) */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party, ts_Bcap_voice_mt)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party, ts_Bcap_voice_mt)));
}
/* MS -> MSC: ALERTING */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_ALERTING(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_ALERTING(cpars.transaction_id)));
MNCC.receive(tr_MNCC_ALERT_ind(cpars.mncc_callref));
log("f_mt_call_complete 2");
@@ -1182,7 +1182,7 @@
}
/* expect the MSC to trigger a BSSMAP ASSIGNMENT */
- [] BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, (tla_ass1, tla_ass2))) -> value bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_AssignmentReq(omit, (tla_ass1, tla_ass2))) -> value bssap {
var template BSSMAP_IE_AoIP_TransportLayerAddress tla;
var BSSMAP_IE_SpeechCodec codec;
var BSSMAP_IE_Osmo_OsmuxCID osmuxCID;
@@ -1217,9 +1217,9 @@
} else {
bssap := valueof(ts_BSSMAP_AssignmentComplete(omit, tla, codec));
}
- BSSAP.send(bssap);
+ RAN_CONN.send(bssap);
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT(cpars.transaction_id)));
}
[] MNCC.receive(tr_MNCC_SETUP_cnf(cpars.mncc_callref)) {
@@ -1302,15 +1302,15 @@
log("f_mt_call_complete 5.iu");
}
- [] BSSAP.receive(tr_RANAP_RabAssReq(?)) -> value ranap {
+ [] RAN_CONN.receive(tr_RANAP_RabAssReq(?)) -> value ranap {
log("f_mt_call_complete 6.iu");
var RAB_ID rab_id := f_ranap_rab_ass_req_extract_rab_id(ranap);
var template (value) RAB_SetupOrModifiedList l :=
ts_RAB_SMdL(rab_id,
hex2bit('350001c0a8021500000000000000000000000000'H),
'040c0000'O);
- BSSAP.send(ts_RANAP_RabAssResp(l));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT(cpars.transaction_id)));
+ RAN_CONN.send(ts_RANAP_RabAssResp(l));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT(cpars.transaction_id)));
}
[] MNCC.receive(tr_MNCC_SETUP_cnf(cpars.mncc_callref)) {
@@ -1380,15 +1380,15 @@
/* expect BSSMAP/RANAP Paging for any IMSI and/or TMSI */
altstep as_paging_any()
runs on BSC_ConnHdlr {
- [g_pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(?, *));
- [not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(?, ?));
+ [g_pars.ran_is_geran] RAN_CONN.receive(tr_BSSMAP_Paging(?, *));
+ [not g_pars.ran_is_geran] RAN_CONN.receive(tr_RANAP_Paging(?, ?));
}
/* expect BSSMAP/RANAP Paging for registered IMSI and the given TMSI */
altstep as_paging_tmsi(template OCT4 tmsi := *)
runs on BSC_ConnHdlr {
- [g_pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi, tmsi));
- [not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi)));
+ [g_pars.ran_is_geran] RAN_CONN.receive(tr_BSSMAP_Paging(g_pars.imsi, tmsi));
+ [not g_pars.ran_is_geran] RAN_CONN.receive(tr_RANAP_Paging(cs_domain, imsi_hex2oct(g_pars.imsi)));
}
/* convenience wrapper for as_paging_tmsi() using g_pars.tmsi */
@@ -1449,12 +1449,12 @@
alt {
[] MNCC.receive(tr_MNCC_DISC_ind(cpars.mncc_callref));
[] MNCC.receive(tr_MNCC_REL_ind(cpars.mncc_callref));
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
- [] BSSAP.receive(tr_BSSMAP_ClearCommand);
- [] BSSAP.receive(tr_BSSMAP_ClearCommandCSFB);
- [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?));
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommandCSFB);
+ [] RAN_CONN.receive(tr_RANAP_IuReleaseCommand(?));
[] T.timeout {
log("Call stayed open for ", open_time, " seconds, all is well.")
@@ -1669,7 +1669,7 @@
} else {
bssap := valueof(ts_BSSMAP_AssignmentComplete(omit, tla, codec));
}
- BSSAP.send(bssap);
+ RAN_CONN.send(bssap);
}
function f_mo_call_establish(inout CallParameters cpars)
@@ -1696,9 +1696,9 @@
f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
if (cpars.emergency) {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_EMERG_SETUP(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_EMERG_SETUP(cpars.transaction_id)));
} else {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(cpars.transaction_id, cpars.called_party,
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(cpars.transaction_id, cpars.called_party,
cpars.bearer_cap)));
}
@@ -1737,7 +1737,7 @@
log("f_mo_call_establish 3: rx RTP CREATE");
/* Call Proceeding */
MNCC.send(ts_MNCC_CALL_PROC_req(cpars.mncc_callref, cpars.mncc_bearer_cap));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_CALL_PROC(cpars.transaction_id)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_CALL_PROC(cpars.transaction_id)));
/* Alerting */
var MNCC_PDU mncc_alert_req := valueof(ts_MNCC_ALERT_req(cpars.mncc_callref));
@@ -1749,7 +1749,7 @@
if (cpars.expect_re_assignment) {
/* Another Assignment Request is expected after telling the MO call leg about MT's codecs */
- BSSAP.receive(tr_BSSMAP_AssignmentReq(omit)) -> value bssap;
+ RAN_CONN.receive(tr_BSSMAP_AssignmentReq(omit)) -> value bssap;
if (not match(bssap.pdu.bssmap.assignmentRequest.codecList.codecElements,
cpars.re_ass_req_codecs)) {
@@ -1761,19 +1761,19 @@
}
}
- //[g_pars.ran_is_geran] BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, tla_ass)) -> value bssap
- [] BSSAP.receive(tr_BSSMAP_AssignmentReq(omit)) -> value bssap {
+ //[g_pars.ran_is_geran] RAN_CONN.receive(tr_BSSMAP_AssignmentReq(omit, tla_ass)) -> value bssap
+ [] RAN_CONN.receive(tr_BSSMAP_AssignmentReq(omit)) -> value bssap {
log("f_mo_call_establish 4: rx Assignment Request");
f_mo_call_establish__handle_assignment_request(cpars, bssap, cpars.ass_compl_chosen_codec);
}
- [] BSSAP.receive(tr_RANAP_RabAssReq(*)) -> value ranap {
+ [] RAN_CONN.receive(tr_RANAP_RabAssReq(*)) -> value ranap {
log("f_mo_call_establish 4.iu: rx RANAP RAB Assignment Request");
var RAB_ID rab_id := f_ranap_rab_ass_req_extract_rab_id(ranap);
var template (value) RAB_SetupOrModifiedList l :=
ts_RAB_SMdL(rab_id,
hex2bit('350001c0a8021500000000000000000000000000'H),
'040c0000'O);
- BSSAP.send(ts_RANAP_RabAssResp(l));
+ RAN_CONN.send(ts_RANAP_RabAssResp(l));
}
/* MDCX setting up the RAN side remote RTP address received from Assignment Complete */
@@ -1800,14 +1800,14 @@
MGCP.send(mgcp_resp);
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_ALERTING(cpars.transaction_id))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_ALERTING(cpars.transaction_id))) {
log("f_mo_call_establish 7: rx CC Alerting");
if (cpars.ran_clear_when_alerting) {
if (g_pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClearRequest(0));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(0));
} else {
- BSSAP.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_om_intervention));
+ RAN_CONN.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_om_intervention));
}
break;
}
@@ -1836,16 +1836,16 @@
}
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_CONNECT(cpars.transaction_id))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_CONNECT(cpars.transaction_id))) {
log("f_mo_call_establish 10: rx CC CONNECT");
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT_ACK(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT_ACK(cpars.transaction_id)));
got_cc_connect := true;
if (not cpars.expect_release and got_mncc_setup_compl_ind) {
break;
}
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id))) {
log("f_mo_call_establish 11: rx CC RELEASE");
if (not cpars.expect_release) {
setverdict(fail, "Got unexpected CC Release");
@@ -1886,7 +1886,7 @@
log("f_call_hangup 0: tx MNCC_DISC_REQ");
MNCC.send(ts_MNCC_DISC_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23))));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
log("f_call_hangup 1: rx DTAP CC DISC");
@@ -1896,17 +1896,17 @@
tid_remote := '0'B;
}
/* B-side (MS) Release of call */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_RELEASE(cpars.transaction_id, tid_remote, '0000000'B)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_RELEASE(cpars.transaction_id, tid_remote, '0000000'B)));
MNCC.receive(tr_MNCC_REL_ind(cpars.mncc_callref));
log("f_call_hangup 2: rx MNCC REL ind");
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_REL_COMPL(cpars.transaction_id)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_REL_COMPL(cpars.transaction_id)));
log("f_call_hangup 3: rx DTAP CC REL COMPL");
} else {
/* A-side (PLMN) Release of call */
MNCC.send(ts_MNCC_REL_req(cpars.mncc_callref, valueof(ts_MNCC_cause(42))));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
log("f_call_hangup 2.a: rx DTAP CC RELEASE");
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id)));
log("f_call_hangup 3.a: rx MNCC REL cnf");
MNCC.receive(tr_MNCC_REL_cnf(cpars.mncc_callref, cause := *));
}
@@ -1918,17 +1918,17 @@
/* clearing of radio channel */
alt {
- [g_pars.ran_is_geran] BSSAP.receive(t_clear) {
- log("f_call_hangup 5: rx BSSAP Clear Command");
- BSSAP.send(ts_BSSMAP_ClearComplete);
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ [g_pars.ran_is_geran] RAN_CONN.receive(t_clear) {
+ log("f_call_hangup 5: rx RAN_CONN Clear Command");
+ RAN_CONN.send(ts_BSSMAP_ClearComplete);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
log("f_call_hangup 6: rx SCCP DISC");
setverdict(pass);
}
- [not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) {
+ [not g_pars.ran_is_geran] RAN_CONN.receive(tr_RANAP_IuReleaseCommand(?)) {
log("f_call_hangup 5.iu: rx Iu Release Command");
- BSSAP.send(ts_RANAP_IuReleaseComplete);
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ RAN_CONN.send(ts_RANAP_IuReleaseComplete);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
log("f_call_hangup 6.iu: rx SCCP DISC");
setverdict(pass);
}
@@ -1992,7 +1992,7 @@
dtmf_dtap := ts_ML3_MO_CC_START_DTMF(cpars.transaction_id, "2");
/* Here, pass skip_seq_patching == false so that the RAN Emulation NSD increments after this message. */
- BSSAP.send(ts_PDU_DTAP_MO(dtmf_dtap, '00'O, false));
+ RAN_CONN.send(ts_PDU_DTAP_MO(dtmf_dtap, '00'O, false));
T.start;
alt {
[] MNCC.receive(tr_MNCC_START_DTMF_ind(cpars.mncc_callref, "2")) {
@@ -2007,7 +2007,7 @@
/* Send the exact same DTAP with above NSD, which is now incorrect (has not incremented), so that this message
* will get filtered by the duplicate detection. Write NSD into DTAP and pass skip_seq_patching == true. */
dtmf_dtap.msgs.cc.startDTMF.nsd := int2bit(next_n_sd, 2);
- BSSAP.send(ts_PDU_DTAP_MO(dtmf_dtap, '00'O, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(dtmf_dtap, '00'O, true));
T.start;
alt {
[] MNCC.receive(tr_MNCC_START_DTMF_ind(cpars.mncc_callref, "2")) {
@@ -2019,7 +2019,7 @@
/* Here the NSD should be correct again and we see a DTMF. */
dtmf_dtap := ts_ML3_MO_CC_START_DTMF(cpars.transaction_id, "3");
- BSSAP.send(ts_PDU_DTAP_MO(dtmf_dtap, '00'O, false));
+ RAN_CONN.send(ts_PDU_DTAP_MO(dtmf_dtap, '00'O, false));
alt {
[] MNCC.receive(tr_MNCC_START_DTMF_ind(cpars.mncc_callref, "3")) {
log("f_mo_seq_dtmf_dup() 3: got second START_DTMF_ind");
@@ -2037,19 +2037,19 @@
/* expect a clear command (for GERAN only!) */
altstep as_clear_cmd_compl_disc() runs on BSC_ConnHdlr {
var PDU_BSSAP bssap;
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
- BSSAP.send(ts_BSSMAP_ClearComplete);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {
+ RAN_CONN.send(ts_BSSMAP_ClearComplete);
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(pass);
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "Unexpected BSSMAP while waiting for SCCP Release");
mtc.stop;
}
}
}
- [] BSSAP.receive(tr_BSSAP_BSSMAP) -> value bssap {
+ [] RAN_CONN.receive(tr_BSSAP_BSSMAP) -> value bssap {
setverdict(fail, "Unexpected BSSMAP while waiting for ClearCommand", bssap);
mtc.stop;
}
@@ -2080,23 +2080,23 @@
}
function f_create_bssmap_exp_n_connect(integer targetPointCode) runs on BSC_ConnHdlr {
- BSSAP_PROC.call(RAN_register_n_connect:{targetPointCode, self}) {
- [] BSSAP_PROC.getreply(RAN_register_n_connect:{?, ?}) {};
+ RAN_CONN_PROC.call(RAN_register_n_connect:{targetPointCode, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_register_n_connect:{?, ?}) {};
}
}
function f_bssmap_last_n_sd() runs on BSC_ConnHdlr return N_Sd_Array {
var N_Sd_Array last_n_sd;
- BSSAP_PROC.call(RAN_last_n_sd:{self, -}) {
- [] BSSAP_PROC.getreply(RAN_last_n_sd:{self, ?}) -> param(last_n_sd) {
+ RAN_CONN_PROC.call(RAN_last_n_sd:{self, -}) {
+ [] RAN_CONN_PROC.getreply(RAN_last_n_sd:{self, ?}) -> param(last_n_sd) {
return last_n_sd;
};
}
}
function f_bssmap_continue_after_n_sd(N_Sd_Array last_n_sd) runs on BSC_ConnHdlr {
- BSSAP_PROC.call(RAN_continue_after_n_sd:{last_n_sd, self}) {
- [] BSSAP_PROC.getreply(RAN_continue_after_n_sd:{last_n_sd, self});
+ RAN_CONN_PROC.call(RAN_continue_after_n_sd:{last_n_sd, self}) {
+ [] RAN_CONN_PROC.getreply(RAN_continue_after_n_sd:{last_n_sd, self});
}
}
@@ -2162,7 +2162,7 @@
}
private altstep as_other_sms() runs on BSC_ConnHdlr {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_SMS(?, ?, ?), ?)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_SMS(?, ?, ?), ?)) {
setverdict(fail, "Unexpected SMS related PDU from MSC");
mtc.stop;
}
@@ -2181,9 +2181,9 @@
rp_mo := ts_RP_SMMA_MO(spars.rp.msg_ref);
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_DATA_MO(rp_mo));
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
/* receive CP-ACK for CP-DATA above */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_SMS(spars.tid, c_TIF_REPL, tr_CP_ACK_MT), spars.dlci));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_SMS(spars.tid, c_TIF_REPL, tr_CP_ACK_MT), spars.dlci));
deactivate(d);
setverdict(pass);
@@ -2205,9 +2205,9 @@
spars.tp.udl, spars.tp.ud);
rp_mo := ts_RP_DATA_MO(spars.rp.msg_ref, omit, spars.rp.smsc_addr, tp_mo);
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_DATA_MO(rp_mo));
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
/* receive CP-ACK for CP-DATA above */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_SMS(spars.tid, c_TIF_REPL, tr_CP_ACK_MT), spars.dlci));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_SMS(spars.tid, c_TIF_REPL, tr_CP_ACK_MT), spars.dlci));
deactivate(d);
setverdict(pass);
@@ -2231,18 +2231,18 @@
/* expect an RP-ERROR message from MSC with given cause */
rp_mt := tr_RP_ERROR_MT(spars.rp.msg_ref, spars.exp_rp_err);
l3_mt := tr_ML3_MT_SMS(spars.tid, c_TIF_REPL, tr_CP_DATA_MT(rp_mt));
- BSSAP.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
/* send CP-ACK for CP-DATA just received */
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_ACK_MO);
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
} else {
/* expect RP-ACK for RP-DATA */
rp_mt := tr_RP_ACK_MT(spars.rp.msg_ref);
l3_mt := tr_ML3_MT_SMS(spars.tid, c_TIF_REPL, tr_CP_DATA_MT(rp_mt));
- BSSAP.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
/* send CP-ACO for CP-DATA just received */
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_ACK_MO);
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
}
deactivate(d);
@@ -2275,7 +2275,7 @@
var default d := activate(as_other_sms());
/* Expect CP-DATA(RP-DATA(SMS-DELIVER)) */
- BSSAP.receive(f_mt_sms_deliver_pdu(spars)) -> value dtap_mt;
+ RAN_CONN.receive(f_mt_sms_deliver_pdu(spars)) -> value dtap_mt;
/* Extract relevant identifiers */
spars.tid := bit2int(dtap_mt.dtap.tiOrSkip.transactionId.tio);
@@ -2283,7 +2283,7 @@
/* send CP-ACK for CP-DATA just received */
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_REPL, ts_CP_ACK_MO);
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
deactivate(d);
setverdict(pass);
@@ -2301,11 +2301,11 @@
/* send RP-ACK for RP-DATA */
rp_mo := ts_RP_ACK_MO(spars.rp.msg_ref);
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_REPL, ts_CP_DATA_MO(rp_mo));
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
/* expect CP-ACK for CP-DATA(RP-ACK) just sent */
l3_mt := tr_ML3_MT_SMS(spars.tid, c_TIF_ORIG, tr_CP_ACK_MT);
- BSSAP.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
deactivate(d);
setverdict(pass);
@@ -2323,11 +2323,11 @@
/* send RP-ACK for RP-DATA */
rp_mo := ts_RP_ERROR_MO(spars.rp.msg_ref, cause);
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_REPL, ts_CP_DATA_MO(rp_mo));
- BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
+ RAN_CONN.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
/* expect CP-ACK for CP-DATA(RP-ERROR) just sent */
l3_mt := tr_ML3_MT_SMS(spars.tid, c_TIF_ORIG, tr_CP_ACK_MT);
- BSSAP.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci));
deactivate(d);
setverdict(pass);
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 1c08a5d..e32ea82 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -180,13 +180,13 @@
}
private altstep as_optional_cc_rel(CallParameters cpars, boolean respond := false) runs on BSC_ConnHdlr {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id))) {
if (respond) {
var BIT1 tid_remote := '1'B;
if (cpars.mo_call) {
tid_remote := '0'B;
}
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, tid_remote)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, tid_remote)));
}
repeat;
}
@@ -470,8 +470,8 @@
vc_conn := BSC_ConnHdlr.create(id);
/* BSSMAP part / A interface */
- connect(vc_conn:BSSAP, g_bssap[pars.ran_idx].vc_RAN:CLIENT);
- connect(vc_conn:BSSAP_PROC, g_bssap[pars.ran_idx].vc_RAN:PROC);
+ connect(vc_conn:RAN_CONN, g_bssap[pars.ran_idx].vc_RAN:CLIENT);
+ connect(vc_conn:RAN_CONN_PROC, g_bssap[pars.ran_idx].vc_RAN:PROC);
/* MNCC part */
connect(vc_conn:MNCC, vc_MNCC:MNCC_CLIENT);
connect(vc_conn:MNCC_PROC, vc_MNCC:MNCC_PROC);
@@ -557,10 +557,10 @@
GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi));
GSUP.send(ts_GSUP_UL_ERR(g_pars.imsi, 23));
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej(int2oct(23,1)))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej(int2oct(23,1)))) {
f_expect_clear();
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
setverdict(fail, "Expecting LU REJ, but got ACCEPT");
mtc.stop;
}
@@ -588,10 +588,10 @@
/* Normally the HLR would need to respond here, but we decide to force a timeout here */
alt {
/* FIXME: Expect specific reject cause */
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
f_expect_clear();
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
setverdict(fail, "Expecting LU REJ, but got ACCEPT");
mtc.stop;
}
@@ -653,7 +653,7 @@
if (g_pars.ran_is_geran) {
f_bssap_compl_l3(l3_lu);
if (g_pars.send_early_cm) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
} else {
f_ranap_initial_ue(l3_lu);
@@ -665,8 +665,8 @@
f_mm_imei();
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) -> value dtap_mt {}
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(fail, "Expected LU ACK, but received LU REJ");
mtc.stop;
}
@@ -710,8 +710,8 @@
timer T := 10.0;
T.start;
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
- //[] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC)) { }
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
+ //[] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC)) { }
[] GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi)) {
setverdict(fail, "Unexpected GSUP UL REQ");
mtc.stop;
@@ -749,7 +749,7 @@
timer T := 10.0;
T.start;
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
[] as_unexp_bssap_msg();
[] T.timeout {
setverdict(fail, "Timeout waiting for CM SERV REJ");
@@ -852,7 +852,7 @@
/* Expect the channel cleared upon T(iar) triggered: */
T_wait_iar.start;
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
T_wait_iar.stop
setverdict(pass);
}
@@ -899,13 +899,13 @@
/* Send Early Classmark, just for the fun of it */
if (pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi));
/* The HLR would normally return an auth vector here, but we fail to do so. */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej));
f_expect_clear();
}
testcase TC_lu_auth_sai_timeout() runs on MTC_CT {
@@ -933,13 +933,13 @@
/* Send Early Classmark, just for the fun of it */
if (pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi));
GSUP.send(ts_GSUP_SAI_ERR(g_pars.imsi, 13));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej));
f_expect_clear();
}
testcase TC_lu_auth_sai_err() runs on MTC_CT {
@@ -967,24 +967,24 @@
f_expect_common_id();
/* Send Early Classmark, just for the fun of it */
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
f_sleep(1.0);
/* send clear request in the middle of the LU */
- BSSAP.send(ts_BSSMAP_ClearRequest(0));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(0));
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { repeat; }
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {}
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { repeat; }
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {}
}
- BSSAP.send(ts_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_BSSMAP_ClearComplete);
alt {
/* See https://osmocom.org/issues/2862 */
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {
setverdict(fail, "Got a second Clear Command, only one expected");
mtc.stop;
repeat;
}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
}
setverdict(pass);
}
@@ -1017,7 +1017,7 @@
f_sleep(2.0);
/* BSC sends BSSMAP Clear Request (e.g. due to RR failure) */
- BSSAP.send(ts_BSSMAP_ClearRequest(1));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(1));
/* Expect (optional) CC RELEASE and Clear Command */
var default ccrel := activate(as_optional_cc_rel(cpars));
@@ -1071,12 +1071,12 @@
/* Send Early Classmark, just for the fun of it */
if (pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
f_sleep(1.0);
/* send clear request in the middle of the LU */
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
setverdict(pass);
f_sleep(1.0);
}
@@ -1103,12 +1103,12 @@
/* Send Early Classmark, just for the fun of it */
if (pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
/* wait for LU reject, ignore any ID REQ */
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { }
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req)) { repeat; }
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { }
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req)) { repeat; }
}
/* wait for normal teardown */
f_expect_clear();
@@ -1138,12 +1138,12 @@
f_cl3_or_initial_ue(l3_lu);
/* Send Early Classmark, just for the fun of it */
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
/* Wait for + respond to ID REQ (IMSI) */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(overlong_imsi))); /* test for OS#2864 */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(overlong_imsi))); /* test for OS#2864 */
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi)));
f_expect_common_id();
/* Expect MSC to do UpdateLocation to HLR; respond to it */
@@ -1153,10 +1153,10 @@
GSUP.send(ts_GSUP_UL_RES(g_pars.imsi));
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(fail, "Expected LU ACK, but received REJ");
mtc.stop;
}
@@ -1190,11 +1190,11 @@
f_cl3_or_initial_ue(l3_lu);
/* Send Early Classmark, just for the fun of it */
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
/* Wait for + respond to ID REQ (IMSI) */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi)));
f_expect_common_id();
/* Expect MSC to do UpdateLocation to HLR; respond to it */
@@ -1204,10 +1204,10 @@
GSUP.send(ts_GSUP_UL_RES(g_pars.imsi));
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(fail, "Expected LU ACK, but received REJ");
mtc.stop;
}
@@ -1230,8 +1230,8 @@
f_cl3_or_initial_ue(l3_lu);
/* Wait for + respond to ID REQ (IMSI) */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi)));
f_expect_common_id();
/* Expect MSC to do UpdateLocation to HLR; respond to it */
@@ -1241,10 +1241,10 @@
GSUP.send(ts_GSUP_UL_RES(g_pars.imsi));
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Acc)) {
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_TmsiRealloc_Cmpl));
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(fail, "Expected LU ACK, but received REJ");
mtc.stop;
}
@@ -1272,7 +1272,7 @@
/* Send Early Classmark, just for the fun of it? */
if (g_pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
/* wait for normal teardown */
@@ -1306,7 +1306,7 @@
/* Send Early Classmark, just for the fun of it? */
if (pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
/* wait for normal teardown */
@@ -1332,7 +1332,7 @@
/* Send Early Classmark, just for the fun of it? */
if (pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
}
/* wait for normal teardown */
@@ -1362,7 +1362,7 @@
var MobileIdentityLV mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_EMERG_CALL, mi));
f_cl3_or_initial_ue(l3_info);
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ('05'O)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ('05'O)));
f_expect_clear();
}
testcase TC_emerg_call_imei_reject() runs on MTC_CT {
@@ -1401,7 +1401,7 @@
var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_VGCS, mi));
f_cl3_or_initial_ue(l3_info);
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
f_expect_clear();
}
testcase TC_cm_serv_req_vgcs_reject() runs on MTC_CT {
@@ -1422,7 +1422,7 @@
var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_VBS, mi));
f_cl3_or_initial_ue(l3_info);
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
f_expect_clear();
}
testcase TC_cm_serv_req_vbs_reject() runs on MTC_CT {
@@ -1443,7 +1443,7 @@
var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_LCS, mi));
f_cl3_or_initial_ue(l3_info);
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
f_expect_clear();
}
testcase TC_cm_serv_req_lcs_reject() runs on MTC_CT {
@@ -1466,7 +1466,7 @@
f_cl3_or_initial_ue(l3_info);
/* Older osmo-msc returns: GSM48_REJECT_SRV_OPT_NOT_SUPPORTED = 32,
* newer osmo-msc with CM Re-Establish support returns: GSM48_REJECT_CALL_CAN_NOT_BE_IDENTIFIED = 38 */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ( (int2oct(32,1), int2oct(38,1)) )));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ( (int2oct(32,1), int2oct(38,1)) )));
f_expect_clear();
}
testcase TC_cm_reest_req_reject() runs on MTC_CT {
@@ -1490,22 +1490,22 @@
f_cl3_or_initial_ue(l3_lu);
/* Send Early Classmark, just for the fun of it */
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
var AuthVector vec := f_gen_auth_vec_2g();
var GSUP_IE auth_tuple := valueof(ts_GSUP_IE_AuthTuple2G(vec.rand, vec.sres, vec.kc));
GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi));
GSUP.send(ts_GSUP_SAI_RES(g_pars.imsi, auth_tuple));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ(vec.rand)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_AUTH_REQ(vec.rand)));
/* Send back wrong auth response */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_2G('00000000'O)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MT_MM_AUTH_RESP_2G('00000000'O)));
/* Expect GSUP AUTH FAIL REP to HLR */
GSUP.receive(tr_GSUP_AUTH_FAIL_IND(g_pars.imsi));
/* Expect LU REJECT with Cause == Illegal MS */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej('03'O)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej('03'O)));
f_expect_clear();
}
testcase TC_lu_auth_2G_fail() runs on MTC_CT {
@@ -1539,16 +1539,16 @@
f_init_handler(pars);
/* Send Complete L3 Info with empty L3 frame */
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,
valueof(ts_BSSMAP_ComplL3(g_pars.cell_id, ''O))));
timer T := 5.0;
T.start;
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
/* Expect LU REJECT with Cause == Illegal MS */
- [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; }
- [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; }
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(?)) { repeat; }
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; }
[] as_clear_cmd_compl_disc();
[] T.timeout {
setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release");
@@ -1577,16 +1577,16 @@
var octetstring payl := f_rnd_octstring(len);
/* Send Complete L3 Info with empty L3 frame */
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own,
valueof(ts_BSSMAP_ComplL3(g_pars.cell_id, payl))));
timer T := 5.0;
T.start;
alt {
/* Immediate disconnect */
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
- [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; }
- [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; }
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(?)) { repeat; }
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; }
[] as_clear_cmd_compl_disc();
[] T.timeout {
setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release");
@@ -1726,7 +1726,7 @@
f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
/* MSC->MS: SETUP */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party)));
}
/* Test MT Call */
@@ -1739,7 +1739,7 @@
f_mt_call_start(cpars);
/* MS->MSC: CALL CONFIRMED */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CALL_CONF(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CALL_CONF(cpars.transaction_id)));
MNCC.receive(tr_MNCC_CALL_CONF_ind(cpars.mncc_callref));
@@ -1817,7 +1817,7 @@
f_mt_call_start(cpars);
/* MS->MSC: CALL CONFIRMED */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CALL_CONF(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CALL_CONF(cpars.transaction_id)));
MNCC.receive(tr_MNCC_CALL_CONF_ind(cpars.mncc_callref));
/* NOTE: MSC is expected to start T310 here */
@@ -1829,8 +1829,8 @@
}
/* BSC->BSC: BSSMAP ASSIGNMENT REQ */
- [] BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, ?)) -> value bssap {
- BSSAP.send(ts_BSSMAP_AssignmentComplete(omit,
+ [] RAN_CONN.receive(tr_BSSMAP_AssignmentReq(omit, ?)) -> value bssap {
+ RAN_CONN.send(ts_BSSMAP_AssignmentComplete(omit,
aoip := f_ts_BSSMAP_IE_AoIP_TLA(cpars.bss_rtp_ip, cpars.bss_rtp_port),
speechCodec := ts_BSSMAP_IE_SpeechCodec({ ts_CodecFR })));
}
@@ -1874,9 +1874,9 @@
}
}
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, '1'B)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, '1'B)));
alt {
[] MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {
@@ -1922,7 +1922,7 @@
var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));
f_cl3_or_initial_ue(l3_info);
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
[] as_unexp_bssap_msg();
}
@@ -1987,20 +1987,20 @@
f_create_gsup_expect(hex2str(g_pars.imsi));
f_cl3_or_initial_ue(l3_lu);
if (pars.send_early_cm) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
} else {
pars.cm1.esind := '0'B;
}
f_mm_auth();
alt {
- [] BSSAP.receive(tr_BSSMAP_ClassmarkReq) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ [] RAN_CONN.receive(tr_BSSMAP_ClassmarkReq) {
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
f_expect_clear();
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd(?,?)) {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd(?,?)) {
setverdict(fail, "CipherModeCommand despite no A5 intersection");
mtc.stop;
}
@@ -2058,13 +2058,13 @@
var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);
f_create_gsup_expect(hex2str(g_pars.imsi));
f_cl3_or_initial_ue(l3_lu);
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
f_mm_auth();
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
f_expect_clear();
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd(?,?)) {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd(?,?)) {
setverdict(fail, "CipherModeCommand despite no A5 intersection");
mtc.stop;
}
@@ -2260,10 +2260,10 @@
f_establish_fully(EST_TYPE_PAG_RESP);
spars.tp.ud := 'C8329BFD064D9B53'O;
interleave {
- [] BSSAP.receive(f_mt_sms_deliver_pdu(spars)) {
+ [] RAN_CONN.receive(f_mt_sms_deliver_pdu(spars)) {
log("Got SMS-DELIVER");
};
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_SETUP(cpars.transaction_id, *, cpars.called_party))) {
log("Got CC Setup");
};
}
@@ -2271,9 +2271,9 @@
log("success, tear down");
var default ccrel := activate(as_optional_cc_rel(cpars));
if (g_pars.ran_is_geran) {
- BSSAP.send(ts_BSSMAP_ClearRequest(0));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(0));
} else {
- BSSAP.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_om_intervention));
+ RAN_CONN.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_om_intervention));
}
f_expect_clear();
deactivate(ccrel);
@@ -3406,7 +3406,7 @@
f_establish_fully(EST_TYPE_PAG_RESP);
/* expect a MT SMS on DTAP */
- BSSAP.receive(f_mt_sms_deliver_pdu(spars));
+ RAN_CONN.receive(f_mt_sms_deliver_pdu(spars));
/* ... MS does not send RP-ACK ... */
@@ -3594,15 +3594,15 @@
var PDU_DTAP_MT dtap;
var PDU_BSSAP bssap;
- [] BSSAP.receive(PDU_DTAP_MT:?) -> value dtap {
+ [] RAN_CONN.receive(PDU_DTAP_MT:?) -> value dtap {
setverdict(fail, "Unknown/unexpected BSSAP/DTAP received: ", dtap);
self.stop;
}
- [] BSSAP.receive(PDU_BSSAP:?) -> value bssap {
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value bssap {
setverdict(fail, "Unknown/unexpected BSSAP received: ", bssap);
self.stop;
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "Unknown/unexpected BSSAP received");
self.stop;
}
@@ -3638,7 +3638,7 @@
T.start;
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(msg)) -> value bssap_msg_complete {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(msg)) -> value bssap_msg_complete {
setverdict(pass);
}
/* We don't expect anything else */
@@ -3703,7 +3703,7 @@
var GSUP_PDU gsup_req_complete;
/* Request own number */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_req));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_req));
/* Expect GSUP message containing the SS payload */
gsup_req_complete := f_expect_gsup_msg(gsup_req);
@@ -3795,7 +3795,7 @@
);
/* MS sends response to the notification */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_rsp));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_rsp));
/* Expect GSUP message containing the SS payload */
f_expect_gsup_msg(gsup_rsp);
@@ -3880,7 +3880,7 @@
var GSUP_PDU gsup_req_complete;
/* Request own number */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_req));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_req));
/* Expect GSUP message containing the SS payload */
gsup_req_complete := f_expect_gsup_msg(gsup_req);
@@ -3997,7 +3997,7 @@
);
/* MS sends response */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_rsp));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_rsp));
f_expect_gsup_msg(gsup_rsp);
/* Compose expected MT SS/RELEASE COMPLETE message */
@@ -4071,7 +4071,7 @@
facility := omit));
/* MS didn't receive the RELEASE COMPLETE yet, so it responds */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_SS_FACILITY(tid := 0,
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_SS_FACILITY(tid := 0,
ti_flag := c_TIF_REPL,
facility := facility_rsp)));
/* this response is rejected because the SS transaction is gone */
@@ -4137,7 +4137,7 @@
var GSUP_PDU gsup_ms_req_complete;
/* Initiate a new transaction */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_ms_req));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_ms_req));
/* Expect GSUP request with original Facility IE */
gsup_ms_req_complete := f_expect_gsup_msg(gsup_ms_req);
@@ -4177,7 +4177,7 @@
);
/* Abort transaction */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_abort));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_abort));
/* Expect GSUP message indicating abort */
f_expect_gsup_msg(gsup_abort);
@@ -4226,7 +4226,7 @@
var GSUP_PDU gsup_ms_req_complete;
/* Initiate a new SS transaction */
- BSSAP.send(ts_PDU_DTAP_MO(ussd_ms_req));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ussd_ms_req));
/* Expect GSUP request with original Facility IE */
gsup_ms_req_complete := f_expect_gsup_msg(gsup_ms_req);
@@ -4247,7 +4247,7 @@
/* Expect release on both interfaces */
interleave {
- [] BSSAP.receive(tr_PDU_DTAP_MT(dtap_rel)) { };
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(dtap_rel)) { };
[] GSUP.receive(gsup_rel) { };
}
@@ -4337,7 +4337,7 @@
);
/* Send GSM 04.80 FACILITY for non-existing transaction */
- BSSAP.send(ts_PDU_DTAP_MO(mo_ss_fac));
+ RAN_CONN.send(ts_PDU_DTAP_MO(mo_ss_fac));
/* Expect GSM 04.80 RELEASE COMPLETE message */
f_expect_mt_dtap_msg(mt_ss_rel);
@@ -4347,7 +4347,7 @@
f_establish_fully(EST_TYPE_SS_ACT);
/* Send GSM 04.80 RELEASE COMPLETE for non-existing transaction */
- BSSAP.send(ts_PDU_DTAP_MO(mo_ss_rel));
+ RAN_CONN.send(ts_PDU_DTAP_MO(mo_ss_rel));
/* Expect GSM 04.80 RELEASE COMPLETE message */
f_expect_mt_dtap_msg(mt_ss_rel);
@@ -4545,7 +4545,7 @@
);
/* Send GSM 04.80 FACILITY for non-existing transaction */
- BSSAP.send(ts_PDU_DTAP_MO(mo_ss_fac));
+ RAN_CONN.send(ts_PDU_DTAP_MO(mo_ss_fac));
/* Expect GSM 04.80 RELEASE COMPLETE message */
f_expect_mt_dtap_msg(mt_ss_rel);
@@ -4620,10 +4620,10 @@
var OCT1 a5_net := f_alg_mask_from_cm(g_pars.cm2);
var OCT1 a5_intersect := g_pars.net.kc_support and4b a5_net;
alt {
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd(a5_intersect, g_pars.vec.kc)) {
- BSSAP.send(ts_BSSMAP_CipherModeCompl(int2oct(4 /* "accept" A5/3 */, 1)));
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd(a5_intersect, g_pars.vec.kc)) {
+ RAN_CONN.send(ts_BSSMAP_CipherModeCompl(int2oct(4 /* "accept" A5/3 */, 1)));
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd(?, g_pars.vec.kc)) {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd(?, g_pars.vec.kc)) {
setverdict(fail, "Wrong ciphering algorithm mask in CiphModCmd");
mtc.stop;
}
@@ -4633,7 +4633,7 @@
/* Expect LU reject from MSC. */
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(pass);
}
[] as_unexp_bssap_msg();
@@ -4667,7 +4667,7 @@
/* Expect LU reject from MSC. */
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
setverdict(pass);
}
[] as_unexp_bssap_msg();
@@ -4703,14 +4703,14 @@
var OCT1 a5_net := f_alg_mask_from_cm(g_pars.cm2);
var OCT1 a5_intersect := g_pars.net.kc_support and4b a5_net;
alt {
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd(a5_intersect, g_pars.vec.kc)) {
- BSSAP.send(ts_BSSMAP_CipherModeComplAlg(omit));
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd(a5_intersect, g_pars.vec.kc)) {
+ RAN_CONN.send(ts_BSSMAP_CipherModeComplAlg(omit));
}
- [] BSSAP.receive(tr_BSSMAP_ClassmarkReq) {
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ [] RAN_CONN.receive(tr_BSSMAP_ClassmarkReq) {
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeCmd(?, g_pars.vec.kc)) {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCmd(?, g_pars.vec.kc)) {
setverdict(fail, "Wrong ciphering algorithm mask in CiphModCmd");
mtc.stop;
}
@@ -5959,8 +5959,8 @@
var template BSSMAP_FIELD_CellIdentificationList cil;
cil := { cIl_LAI := { ts_BSSMAP_CI_LAI('023'H, '42'H, 999) } };
- BSSAP.send(ts_BSSMAP_HandoverRequired(cause, cil));
- BSSAP.receive(tr_BSSMAP_HandoverRequiredReject);
+ RAN_CONN.send(ts_BSSMAP_HandoverRequired(cause, cil));
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequiredReject);
f_call_hangup(cpars, true);
}
@@ -6037,17 +6037,17 @@
cil := { cIl_CGI := { ts_BSSMAP_CI_CGI('023'H, '42'H, 5, 6) } };
/* old BSS sends Handover Required */
- BSSAP.send(ts_BSSMAP_HandoverRequired(cause, cil));
+ RAN_CONN.send(ts_BSSMAP_HandoverRequired(cause, cil));
/* Now the action goes on in f_tc_ho_inter_bsc1() */
/* MSC forwards the RR Handover Command to old BSS */
var PDU_BSSAP ho_command;
- BSSAP.receive(tr_BSSMAP_HandoverCommand) -> value ho_command;
+ RAN_CONN.receive(tr_BSSMAP_HandoverCommand) -> value ho_command;
log("GOT HandoverCommand", ho_command);
- BSSAP.receive(tr_BSSMAP_HandoverSucceeded);
+ RAN_CONN.receive(tr_BSSMAP_HandoverSucceeded);
/* f_tc_ho_inter_bsc1() completes Handover, then expecting a Clear here. */
f_expect_clear();
@@ -6071,8 +6071,8 @@
kC128, codecList := ?);
var PDU_BSSAP ho_request;
alt {
- [] BSSAP.receive(expect_ho_request);
- [] BSSAP.receive(tr_BSSMAP_HandoverRequest) -> value ho_request {
+ [] RAN_CONN.receive(expect_ho_request);
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequest) -> value ho_request {
log("Error: Wrong handoverRequest received. Expected: ", expect_ho_request,
" got ", ho_request);
setverdict(fail, "Wrong handoverRequest received");
@@ -6085,7 +6085,7 @@
var octetstring rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd);
var BSSMAP_IE_AoIP_TransportLayerAddress tla tla :=
valueof(f_ts_BSSMAP_IE_AoIP_TLA(cpars.bss_rtp_ip, cpars.bss_rtp_port));
- BSSAP.send(ts_BSSMAP_HandoverRequestAcknowledge(rr_ho_cmd_enc, lengthof(rr_ho_cmd_enc),
+ RAN_CONN.send(ts_BSSMAP_HandoverRequestAcknowledge(rr_ho_cmd_enc, lengthof(rr_ho_cmd_enc),
tla, ts_BSSMAP_IE_SpeechCodec({ts_CodecFR})));
/* Now f_tc_ho_inter_bsc1() expects HandoverCommand */
@@ -6094,9 +6094,9 @@
/* Notify that the MS is now over here */
- BSSAP.send(ts_BSSMAP_HandoverDetect);
+ RAN_CONN.send(ts_BSSMAP_HandoverDetect);
f_sleep(0.1);
- BSSAP.send(ts_BSSMAP_HandoverComplete);
+ RAN_CONN.send(ts_BSSMAP_HandoverComplete);
f_sleep(3.0);
@@ -6133,8 +6133,8 @@
kC128, codecList := ?);
var PDU_BSSAP ho_request;
alt {
- [] BSSAP.receive(expect_ho_request);
- [] BSSAP.receive(tr_BSSMAP_HandoverRequest) -> value ho_request {
+ [] RAN_CONN.receive(expect_ho_request);
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequest) -> value ho_request {
log("Error: Wrong handoverRequest received. Expected: ", expect_ho_request,
" got ", ho_request);
setverdict(fail, "Wrong handoverRequest received");
@@ -6146,7 +6146,7 @@
var octetstring rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd);
var BSSMAP_IE_AoIP_TransportLayerAddress tla :=
valueof(f_ts_BSSMAP_IE_AoIP_TLA(bss_rtp_ip, 2342));
- BSSAP.send(ts_BSSMAP_HandoverRequestAcknowledge(rr_ho_cmd_enc, lengthof(rr_ho_cmd_enc),
+ RAN_CONN.send(ts_BSSMAP_HandoverRequestAcknowledge(rr_ho_cmd_enc, lengthof(rr_ho_cmd_enc),
tla, ts_BSSMAP_IE_SpeechCodec({ts_CodecFR})));
/* Now f_tc_ho_inter_bsc0() expects HandoverCommand */
@@ -6155,9 +6155,9 @@
/* Notify that the MS is now over here */
- BSSAP.send(ts_BSSMAP_HandoverDetect);
+ RAN_CONN.send(ts_BSSMAP_HandoverDetect);
f_sleep(0.1);
- BSSAP.send(ts_BSSMAP_HandoverComplete);
+ RAN_CONN.send(ts_BSSMAP_HandoverComplete);
f_sleep(3.0);
@@ -6171,17 +6171,17 @@
cil := { cIl_CGI := { ts_BSSMAP_CI_CGI('262'H, '42'H, 23, 42) } };
/* old BSS sends Handover Required */
- BSSAP.send(ts_BSSMAP_HandoverRequired(cause, cil));
+ RAN_CONN.send(ts_BSSMAP_HandoverRequired(cause, cil));
/* Now the action goes on in f_tc_ho_inter_bsc0() */
/* MSC forwards the RR Handover Command to old BSS */
var PDU_BSSAP ho_command;
- BSSAP.receive(tr_BSSMAP_HandoverCommand) -> value ho_command;
+ RAN_CONN.receive(tr_BSSMAP_HandoverCommand) -> value ho_command;
log("GOT HandoverCommand", ho_command);
- BSSAP.receive(tr_BSSMAP_HandoverSucceeded);
+ RAN_CONN.receive(tr_BSSMAP_HandoverSucceeded);
/* f_tc_ho_inter_bsc1() completes Handover, then expecting a Clear here. */
f_expect_clear();
@@ -6297,7 +6297,7 @@
cil := { cIl_CGI := { ts_BSSMAP_CI_CGI('017'H, '017'H, 1, 1) } };
/* old BSS sends Handover Required */
- BSSAP.send(ts_BSSMAP_HandoverRequired(cause, cil));
+ RAN_CONN.send(ts_BSSMAP_HandoverRequired(cause, cil));
/* The target cell 017-017 LAC 1 is configured to be a remote MSC of name "msc-017-017-1".
* This MSC tries to reach the other MSC via GSUP. */
@@ -6350,7 +6350,7 @@
valueof(t_GSUP_AN_APDU(OSMO_GSUP_AN_PROTO_48006, enc_PDU_BSSAP(ho_req_ack)))));
/* MSC forwards the RR Handover Command to old BSS */
- BSSAP.receive(tr_BSSMAP_HandoverCommand);
+ RAN_CONN.receive(tr_BSSMAP_HandoverCommand);
/* The MS shows up at remote new BSS */
@@ -6358,7 +6358,7 @@
pars.imsi, remote_msc_name, local_msc_name,
valueof(t_GSUP_AN_APDU(OSMO_GSUP_AN_PROTO_48006,
enc_PDU_BSSAP(valueof(ts_BSSMAP_HandoverDetect))))));
- BSSAP.receive(tr_BSSMAP_HandoverSucceeded);
+ RAN_CONN.receive(tr_BSSMAP_HandoverSucceeded);
f_sleep(0.1);
/* Save the MS sequence counters for use on the other connection */
@@ -6468,7 +6468,7 @@
cil := { cIl_CGI := { ts_BSSMAP_CI_CGI('262'H, '42'H, 23, 42) } };
/* old BSS sends Handover Required, via inter-MSC E link: like
- * BSSAP.send(ts_BSSMAP_HandoverRequired(cause, cil));
+ * RAN_CONN.send(ts_BSSMAP_HandoverRequired(cause, cil));
* but via GSUP */
GSUP.send(ts_GSUP_E_AN_APDU(OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_REQUEST,
pars.imsi, remote_msc_name, local_msc_name,
@@ -6483,8 +6483,8 @@
chosenEncryptionAlgorithm,
kC128, codecList := ?);
alt {
- [] BSSAP.receive(expect_ho_request) -> value ho_request;
- [] BSSAP.receive(tr_BSSMAP_HandoverRequest) -> value ho_request {
+ [] RAN_CONN.receive(expect_ho_request) -> value ho_request;
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequest) -> value ho_request {
log("Error: Wrong handoverRequest received. Expected: ", expect_ho_request,
" got ", ho_request);
setverdict(fail, "Wrong handoverRequest received");
@@ -6500,7 +6500,7 @@
rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd);
var BSSMAP_IE_AoIP_TransportLayerAddress tla :=
valueof(f_ts_BSSMAP_IE_AoIP_TLA(cpars.bss_rtp_ip, cpars.bss_rtp_port));
- BSSAP.send(ts_BSSMAP_HandoverRequestAcknowledge(rr_ho_cmd_enc, lengthof(rr_ho_cmd_enc),
+ RAN_CONN.send(ts_BSSMAP_HandoverRequestAcknowledge(rr_ho_cmd_enc, lengthof(rr_ho_cmd_enc),
tla, ts_BSSMAP_IE_SpeechCodec({ts_CodecFR}),
chosenEncryptionAlgorithm := ho_request.pdu.bssmap.handoverRequest.chosenEncryptionAlgorithm));
@@ -6510,9 +6510,9 @@
pars.imsi, destination_name := remote_msc_name)) -> value prep_subsq_ho_res;
/* MS shows up at the local BSS */
- BSSAP.send(ts_BSSMAP_HandoverDetect);
+ RAN_CONN.send(ts_BSSMAP_HandoverDetect);
f_sleep(0.1);
- BSSAP.send(ts_BSSMAP_HandoverComplete);
+ RAN_CONN.send(ts_BSSMAP_HandoverComplete);
/* Handover Succeeded message */
GSUP.receive(tr_GSUP_E_AN_APDU(OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_REQUEST,
@@ -6669,7 +6669,7 @@
l3_lu := f_build_lu_imsi(g_pars.imsi)
f_create_gsup_expect(hex2str(g_pars.imsi));
f_bssap_compl_l3(l3_lu);
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
f_mm_common();
f_msc_lu_hlr();
@@ -6699,7 +6699,7 @@
l3_lu := f_build_lu_imsi(g_pars.imsi)
f_create_gsup_expect(hex2str(g_pars.imsi));
f_bssap_compl_l3(l3_lu);
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
f_mm_common();
f_msc_lu_hlr();
@@ -6792,7 +6792,7 @@
l3_lu := f_build_lu_imsi(g_pars.imsi)
f_create_gsup_expect(hex2str(g_pars.imsi));
f_bssap_compl_l3(l3_lu);
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
f_mm_imei_early();
f_expect_lu_reject();
@@ -6820,7 +6820,7 @@
l3_lu := f_build_lu_imsi(g_pars.imsi)
f_create_gsup_expect(hex2str(g_pars.imsi));
f_bssap_compl_l3(l3_lu);
- BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
+ RAN_CONN.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
f_mm_imei_early();
f_expect_lu_reject();
@@ -6868,8 +6868,8 @@
f_bssap_compl_l3(f_build_lu_tmsi('FFFFFFFF'O));
/* Expect an Identity Request, send response with no identity */
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp({
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp({
lengthIndicator := 1,
mobileIdentityV := {
typeOfIdentity := '000'B,
@@ -6983,7 +6983,7 @@
var template BSSMAP_IE_AoIP_TransportLayerAddress tla_ass :=
(f_tr_BSSMAP_IE_AoIP_TLA(cpars.mgw_conn_1.mgw_rtp_ip, ?),
f_tr_BSSMAP_IE_AoIP_TLA(cpars.mgw_conn_2.mgw_rtp_ip, ?));
- BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, tla_ass));
+ RAN_CONN.receive(tr_BSSMAP_AssignmentReq(omit, tla_ass));
/* By this Assignment Request, the CM Re-Establishment Request is implicitly accepted. */
/* Send Assignment Complete from BSC */
@@ -7005,7 +7005,7 @@
var default ack_mdcx := activate(as_mgcp_ack_all_mdcx(cpars));
var default optional_rtp_create := activate(as_mncc_rx_rtp_create(cpars));
- BSSAP.send(ts_BSSMAP_AssignmentComplete(omit, tla, codec));
+ RAN_CONN.send(ts_BSSMAP_AssignmentComplete(omit, tla, codec));
/* The call has been fully re-established.
* Let a bit of time pass before hanging up, for everything to settle. */
@@ -7020,19 +7020,19 @@
/* CC release. This is the proper MS initiated release sequence as shown by
* https://git.osmocom.org/osmo-msc/tree/doc/sequence_charts/voice_call_full.msc?id=e53ecde83e4fb2470209e818e9ad76a2d6a19190
* f_call_hangup() seems a bit mixed up, so here a "proper" sequence. Fix of f_call_hangup() pending. */
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_DISC(cpars.transaction_id, '0'B, '0000000'B)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_DISC(cpars.transaction_id, '0'B, '0000000'B)));
MNCC.receive(tr_MNCC_DISC_ind(cpars.mncc_callref));
MNCC.send(ts_MNCC_REL_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23))));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, '0'B)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, '0'B)));
MNCC.receive(tr_MNCC_REL_cnf(cpars.mncc_callref, cause := *));
/* BSSAP clear */
interleave {
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
- BSSAP.send(ts_BSSMAP_ClearComplete);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {
+ RAN_CONN.send(ts_BSSMAP_ClearComplete);
}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
}
f_sleep(1.0);
@@ -7110,11 +7110,11 @@
/* CM Serv Req with mismatching Mobile Identity */
var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(f_gen_imsi(99999))); /* ensure it is different from below*/
- BSSAP.send(ts_PDU_DTAP_MO(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, mi)));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, mi)));
+ RAN_CONN.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ));
/* Cancel the first CM Service from f_establish_fully() */
- BSSAP.send(ts_BSSMAP_ClearRequest(0));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(0));
f_expect_clear();
}
@@ -7377,7 +7377,7 @@
log(MSCVTY, "f_establish_fully() starting");
f_establish_fully();
log(MSCVTY, "f_establish_fully() done");
- BSSAP.send(ts_BSSMAP_ClearRequest(0));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(0));
f_expect_clear();
}
@@ -7541,9 +7541,9 @@
/* MSC <-> BSC: ID req/rsp for IMSI */
private altstep as_id_req_imsi()
runs on BSC_ConnHdlr {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req(CM_ID_TYPE_IMSI))) {
var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp(mi)));
repeat;
}
}
@@ -7741,8 +7741,8 @@
/* Hold the call for some time */
T.start(3.0);
alt {
- [] BSSAP.receive(tr_BSSMAP_AssignmentReq) {
- BSSAP.send(ts_BSSMAP_AssignmentComplete);
+ [] RAN_CONN.receive(tr_BSSMAP_AssignmentReq) {
+ RAN_CONN.send(ts_BSSMAP_AssignmentComplete);
repeat;
}
[] as_unexp_bssap_msg();
@@ -7797,7 +7797,7 @@
}
}
- BSSAP.send(ts_BSSMAP_ClearRequest(0));
+ RAN_CONN.send(ts_BSSMAP_ClearRequest(0));
f_expect_clear();
}
testcase TC_silent_call_active_conn() runs on MTC_CT {
diff --git a/msc/MSC_Tests_ASCI.ttcn b/msc/MSC_Tests_ASCI.ttcn
index c8bf2da..135edb1 100644
--- a/msc/MSC_Tests_ASCI.ttcn
+++ b/msc/MSC_Tests_ASCI.ttcn
@@ -154,13 +154,13 @@
log("Sending SETUP.");
select (test) {
case (COORD_TEST_NO_CALLREF) {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, '3200002900'O)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, '3200002900'O)));
}
case (COORD_TEST_COMPLETE_VBS) {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_BCC(cpars.transaction_id, '3200001a00'O)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_BCC(cpars.transaction_id, '3200001a00'O)));
}
case else {
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, '3200001900'O)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, '3200001900'O)));
}
}
COORD.send(COORD_SETUP);
@@ -168,45 +168,45 @@
timer T := 10.0;
T.start;
alt {
- [] BSSAP.receive(tr_assignment_req) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_assignment_req) -> value rx_bssap {
/* The MSC sends and Assignment Request to assign the calling subscriber to the VGCS/VBS channel. */
log("Got Assignment Request: ", rx_bssap);
COORD.send(COORD_ASSIGNMENT);
log("Sending Assignment Complete: ", ts_assignment_cpl);
- BSSAP.send(ts_assignment_cpl);
+ RAN_CONN.send(ts_assignment_cpl);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_termination_21))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_termination_21))) {
/* The MSC terminates the group call with cause 21 = requested service not subscribed. */
log("Got GCC Termination with failure.");
COORD.send(COORD_GCC_TERMINATION_FAIL);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_termination_21))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_termination_21))) {
/* The MSC terminates the broadcast call with cause 21 = requested service not subscribed. */
log("Got BCC Termination with failure.");
COORD.send(COORD_BCC_TERMINATION_FAIL);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_termination_11))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_termination_11))) {
/* The MSC terminates the group call with cause 11 = network failure. */
log("Got GCC Termination with failure.");
COORD.send(COORD_GCC_TERMINATION_FAIL);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_termination_11))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_termination_11))) {
/* The MSC terminates the broadcast call with cause 11 = network failure. */
log("Got BCC Termination with failure.");
COORD.send(COORD_BCC_TERMINATION_FAIL);
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {
/* The SCCP connection is released. */
log("Got Clear Command on initial connection.");
COORD.send(COORD_CLEAR);
repeat;
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "Got unexpected message on initial connection.");
}
[] COORD.receive(COORD_CLEAR) { }
@@ -259,96 +259,96 @@
timer T := 7.0;
T.start;
alt {
- [] BSSAP.receive(tr_vgcs_vbs_setup) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_vgcs_vbs_setup) -> value rx_bssap {
/* The MSC sets up call control on the BSC. The test case will send an ack or a refuse. */
log("Got VGCS/VBS Setup: ", rx_bssap);
COORD.send(COORD_VGCS_SETUP);
if (test == COORD_TEST_SETUP_REFUSE) {
log("Sending VGCS/VBS Setup Refuse: ", ts_vgcs_vbs_setup_refuse);
- BSSAP.send(ts_vgcs_vbs_setup_refuse);
+ RAN_CONN.send(ts_vgcs_vbs_setup_refuse);
} else {
log("Sending VGCS/VBS Setup Ack: ", ts_vgcs_vbs_setup_ack);
- BSSAP.send(ts_vgcs_vbs_setup_ack);
+ RAN_CONN.send(ts_vgcs_vbs_setup_ack);
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkSeizedCmd(GSM0808_CAUSE_CALL_CONTROL)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkSeizedCmd(GSM0808_CAUSE_CALL_CONTROL)) -> value rx_bssap {
/* After setting up the call, the MSC marks the call as busy. */
log("Got Uplink Seized Cmd: ", rx_bssap);
COORD.send(COORD_UPLINK_SEIZED);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, gcc_connect))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, gcc_connect))) {
/* The GCC CONNECT message is sent to the calling MS. */
log("Got GCC Connect.");
COORD.send(COORD_GCC_CONNECT);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, bcc_connect))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, bcc_connect))) {
/* The BCC CONNECT message is sent to the calling MS. */
log("Got BCC Connect.");
COORD.send(COORD_BCC_CONNECT);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_set_param))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_set_param))) {
/* The GCC SET PARAMETER message is sent to the calling MS. */
log("Got GCC Set Parameter.");
COORD.send(COORD_GCC_SET_PARAM);
f_sleep(0.2);
/* The MS releases the uplink. */
log("Sending Uplink Release Ind: ", ts_uplink_rel_ind);
- BSSAP.send(ts_uplink_rel_ind);
+ RAN_CONN.send(ts_uplink_rel_ind);
f_sleep(0.2);
/* The MS requests the uplink again. */
log("Sending Uplink Req: ", ts_uplink_req);
- BSSAP.send(ts_uplink_req);
+ RAN_CONN.send(ts_uplink_req);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_set_param))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_set_param))) {
/* The BCC SET PARAMETER message is sent to the calling MS. */
log("Got BCC Set Parameter");
COORD.send(COORD_BCC_SET_PARAM);
f_sleep(0.2);
/* The MS requests termination of the call. */
log("Sending BCC Termination Request: ", bcc_term_req);
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_BCC(cpars.transaction_id, bcc_term_req)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_BCC(cpars.transaction_id, bcc_term_req)));
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkReqAck(*)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkReqAck(*)) -> value rx_bssap {
/* The uplink was granted by the MSC. */
log("Got Uplink Request Acknowledge: ", rx_bssap);
COORD.send(COORD_UPLINK_REQ_ACK);
f_sleep(0.2);
/* The BSC confirms the uplink and provides mobile identity to identify originator. */
log("Sending Uplink Req Confirm: ", ts_uplink_req_conf);
- BSSAP.send(ts_uplink_req_conf);
+ RAN_CONN.send(ts_uplink_req_conf);
/* The MS requests termination of the call. */
log("Sending GCC Termination Request: ", gcc_term_req);
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, gcc_term_req)));
+ RAN_CONN.send(ts_PDU_DTAP_MO(ts_ML3_MO_GCC(cpars.transaction_id, gcc_term_req)));
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_termination))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_GCC(cpars.transaction_id, xcc_termination))) {
/* The MSC terminates the call towards the MS. */
log("Got GCC Termination.");
COORD.send(COORD_GCC_TERMINATION);
repeat;
}
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_termination))) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_BCC(cpars.transaction_id, xcc_termination))) {
/* The MSC terminates the call towards the MS. */
log("Got BCC Termination.");
COORD.send(COORD_BCC_TERMINATION);
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {
/* The SCCP connection is released. */
log("Got Clear Command on control connection.");
COORD.send(COORD_CLEAR);
repeat;
}
- [] BSSAP.receive(PDU_BSSAP:?) -> value rx_bssap {
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value rx_bssap {
setverdict(fail, "Got unexpected BSSAP message on control connection: ", rx_bssap);
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "Got unexpected message on control connection.");
}
[] COORD.receive(COORD_CLEAR) { }
@@ -395,29 +395,29 @@
timer T := 7.0;
T.start;
alt {
- [] BSSAP.receive(tr_vgcs_vbs_ass_req) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_vgcs_vbs_ass_req) -> value rx_bssap {
/* The MSC allocates channel on the given BTS. The test case will send a result or a failure. */
log("Got VGCS/VBS Assignment Request: ", rx_bssap);
COORD.send(COORD_VGCS_ASSIGN);
if (test == COORD_TEST_ASSIGN_FAIL) {
log("Sending VGCS/VBS Assignment Failure: ", ts_vgcs_vbs_ass_fail);
- BSSAP.send(ts_vgcs_vbs_ass_fail);
+ RAN_CONN.send(ts_vgcs_vbs_ass_fail);
} else {
log("Sending VGCS/VBS Assignment Result: ", ts_vgcs_vbs_ass_res);
- BSSAP.send(ts_vgcs_vbs_ass_res);
+ RAN_CONN.send(ts_vgcs_vbs_ass_res);
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_ClearCommand) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearCommand) {
/* The SCCP connection is released. */
log("Got Clear Command on channel connection.");
COORD.send(COORD_CLEAR);
repeat;
}
- [] BSSAP.receive(PDU_BSSAP:?) -> value rx_bssap {
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value rx_bssap {
setverdict(fail, "Got unexpected BSSAP message on channel connection: ", rx_bssap);
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "Got unexpected message on channel connection.");
}
[] COORD.receive(COORD_CLEAR) { }
diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn
index c3c7231..75ecbe3 100644
--- a/msc/MSC_Tests_Iu.ttcn
+++ b/msc/MSC_Tests_Iu.ttcn
@@ -127,25 +127,25 @@
/* tell GSUP dispatcher to send this IMSI to us */
f_create_gsup_expect(hex2str(g_pars.imsi));
- /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
+ /* Send RANAP_Conn_Req with COMPL L3 INFO to MSC */
f_cl3_or_initial_ue(l3_lu);
f_sleep(1.0);
/* send release request in the middle of the LU */
- BSSAP.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_om_intervention));
+ RAN_CONN.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_om_intervention));
alt {
- [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { repeat; }
- [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) {}
+ [] RAN_CONN.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { repeat; }
+ [] RAN_CONN.receive(tr_RANAP_IuReleaseCommand(?)) {}
}
- BSSAP.send(ts_RANAP_IuReleaseComplete);
+ RAN_CONN.send(ts_RANAP_IuReleaseComplete);
alt {
/* See https://osmocom.org/issues/2862 */
- [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) {
+ [] RAN_CONN.receive(tr_RANAP_IuReleaseCommand(?)) {
setverdict(fail, "Got a second Iu Release Command, only one expected");
mtc.stop;
repeat;
}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {}
}
setverdict(pass);
}
diff --git a/sgsn/BSSGP_ConnHdlr.ttcn b/sgsn/BSSGP_ConnHdlr.ttcn
index c9e9f50..eac01d5 100644
--- a/sgsn/BSSGP_ConnHdlr.ttcn
+++ b/sgsn/BSSGP_ConnHdlr.ttcn
@@ -216,10 +216,10 @@
};
ranap := valueof(ts_RANAP_initialUE_PS(lai, rac, sai, l3_enc, sigc_id, grnc_id));
- BSSAP.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_local, ranap));
+ RAN_CONN.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_local, ranap));
alt {
- [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {}
- [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND) {}
+ [] RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND) {
setverdict(fail, "DISC.ind from SCCP");
mtc.stop;
}
@@ -233,7 +233,7 @@
g_pars.rnc_send_initial_ue := false;
f_send_l3_initial_ue(l3_mo);
} else {
- BSSAP.send(ts_PDU_DTAP_PS_MO(l3_mo));
+ RAN_CONN.send(ts_PDU_DTAP_PS_MO(l3_mo));
}
} else {
f_send_l3_gmm_llc(l3_mo, ran_index);
@@ -247,7 +247,7 @@
f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
repeat;
}
- [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('010'B))) {
+ [is_iu(ran_index)] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('010'B))) {
mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
repeat;
@@ -261,7 +261,7 @@
f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
repeat;
}
- [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('001'B))) {
+ [is_iu(ran_index)] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('001'B))) {
mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
f_send_l3(ts_GMM_ID_RESP(mi), ran_index);
repeat;
@@ -278,7 +278,7 @@
runs on BSSGP_ConnHdlr {
var PDU_DTAP_PS_MT mt;
[is_gb(ran_index)] BSSGP[ran_index].receive(rx_tpl) -> value l3_mt { }
- [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(rx_tpl)) -> value mt {
+ [is_iu(ran_index)] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(rx_tpl)) -> value mt {
l3_mt := mt.dtap;
}
}
@@ -286,26 +286,26 @@
/* (copied from msc/BSC_ConnectionHandler.ttcn) */
private altstep as_ciph_utran() runs on BSSGP_ConnHdlr
{
- [g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmdEnc(uia_algs := ?,
+ [g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmdEnc(uia_algs := ?,
uia_key := oct2bit(g_pars.vec.ik),
key_sts := ?,
uea_algs := ?,
uea_key := oct2bit(g_pars.vec.ck))) {
var IntegrityProtectionAlgorithm uia_chosen := 0; /*standard_UMTS_integrity_algorithm_UIA1*/
var EncryptionAlgorithm uea_chosen := 1; /*standard_UMTS_encryption_algorith_UEA1*/
- BSSAP.send(ts_RANAP_SecurityModeCompleteEnc(uia_chosen, uea_chosen));
+ RAN_CONN.send(ts_RANAP_SecurityModeCompleteEnc(uia_chosen, uea_chosen));
}
- [g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmdEnc(?,?,?,?,?)) {
+ [g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmdEnc(?,?,?,?,?)) {
setverdict(fail, "Invalid SecurityModeCommand (ciphering case)");
mtc.stop;
}
- [not g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
+ [not g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
uia_key := oct2bit(g_pars.vec.ik),
key_sts := ?)) {
var IntegrityProtectionAlgorithm uia_chosen := 0; /*standard_UMTS_integrity_algorithm_UIA1;*/
- BSSAP.send(ts_RANAP_SecurityModeComplete(uia_chosen));
+ RAN_CONN.send(ts_RANAP_SecurityModeComplete(uia_chosen));
}
- [not g_pars.net.expect_ciph] BSSAP.receive(tr_RANAP_SecurityModeCmd(?,?,?)) {
+ [not g_pars.net.expect_ciph] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(?,?,?)) {
setverdict(fail, "Invalid SecurityModeCommand (non-ciphering case)");
mtc.stop;
}
@@ -374,7 +374,7 @@
[is_gb(ran_index)] BSSGP[ran_index].receive(tr_GMM_AUTH_REQ(g_pars.vec.rand)) -> value l3_mt {
f_gmm_auth_as(l3_mt, umts_aka_challenge, force_gsm_sres, ran_index);
}
- [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_AUTH_REQ(g_pars.vec.rand))) -> value mt {
+ [is_iu(ran_index)] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_AUTH_REQ(g_pars.vec.rand))) -> value mt {
l3_mt := mt.dtap;
f_gmm_auth_as(l3_mt, umts_aka_challenge, force_gsm_sres, ran_index);
}
@@ -458,7 +458,7 @@
/* Security Mode Command + Complete on Iu case */
if (is_iu(ran_index)) {
as_ciph_utran();
- BSSAP.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)));
+ RAN_CONN.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)));
}
} else {
/* wait for identity procedure */
@@ -662,21 +662,21 @@
altstep as_routing_area_update_iu(integer ran_index := 0) runs on BSSGP_ConnHdlr {
var PDU_DTAP_PS_MT mt;
- [] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_ACCEPT)) -> value mt {
+ [] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_ACCEPT)) -> value mt {
f_process_rau_accept(mt.dtap.msgs.gprs_mm.routingAreaUpdateAccept, ran_index);
f_send_l3(ts_GMM_RAU_COMPL, ran_index);
setverdict(pass);
}
- [] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_REJECT)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_RAU_REJECT)) {
setverdict(fail, "Unexpected RAU Reject");
mtc.stop;
}
- [] BSSAP.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
+ [] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
uia_key := oct2bit(g_pars.vec.ik),
key_sts := ?)) {
var IntegrityProtectionAlgorithm uia_chosen := 0; /* 0 = standard_UMTS_integrity_algorithm_UIA1 */
- BSSAP.send(ts_RANAP_SecurityModeComplete(uia_chosen));
- BSSAP.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)))
+ RAN_CONN.send(ts_RANAP_SecurityModeComplete(uia_chosen));
+ RAN_CONN.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)))
repeat;
}
}
@@ -702,7 +702,7 @@
alt {
[] as_routing_area_update(ran_index) { setverdict(pass); }
[is_gb(ran_index)] BSSGP[ran_index].receive { repeat; }
- [is_iu(ran_index)] BSSAP.receive { repeat; }
+ [is_iu(ran_index)] RAN_CONN.receive { repeat; }
[] T.timeout {
setverdict(fail, "Timeout completing the RAU procedure");
mtc.stop;
@@ -722,26 +722,26 @@
altstep as_service_request(boolean exp_service_acc := true, integer ran_index := 0) runs on BSSGP_ConnHdlr {
var PDU_DTAP_PS_MT mt;
- [exp_service_acc] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_SERVICE_ACC)) -> value mt {
+ [exp_service_acc] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_SERVICE_ACC)) -> value mt {
setverdict(pass);
}
- [not exp_service_acc] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_SERVICE_ACC)) -> value mt {
+ [not exp_service_acc] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_SERVICE_ACC)) -> value mt {
setverdict(fail, "Unexpected Service Accept");
mtc.stop;
}
- [] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_SERVICE_REJ)) {
+ [] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_SERVICE_REJ)) {
setverdict(fail, "Unexpected Service Reject");
mtc.stop;
}
/* 24.008 4.7.13.3: a SecurityModeCommand is an implicit Service Accept if UE was in PMM-IDLE */
- [] BSSAP.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
+ [] RAN_CONN.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?,
uia_key := oct2bit(g_pars.vec.ik),
key_sts := ?)) {
var IntegrityProtectionAlgorithm uia_chosen := 0; /* 0 = standard_UMTS_integrity_algorithm_UIA1 */
- BSSAP.send(ts_RANAP_SecurityModeComplete(uia_chosen));
+ RAN_CONN.send(ts_RANAP_SecurityModeComplete(uia_chosen));
if (not exp_service_acc) {
/* Because we stop processing early, we need to consume the CommonID */
- BSSAP.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)));
+ RAN_CONN.receive(tr_RANAP_CommonId(imsi_hex2oct(g_pars.imsi)));
setverdict(pass);
} else {
/* This repeat would be wrong if you follow the spec correct. Because:
@@ -794,7 +794,7 @@
alt {
[] as_service_request(exp_service_acc := expect_service_acc, ran_index := ran_index) { setverdict(pass); }
- [not expect_auth] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_AUTH_REQ)) {
+ [not expect_auth] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_GMM_AUTH_REQ)) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Service Request: Unexpected GMM Auth Req");
}
@@ -802,7 +802,7 @@
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Service Request: Unexpected GSUP SAI Req");
}
- [] BSSAP.receive { repeat; }
+ [] RAN_CONN.receive { repeat; }
[] T.timeout {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Timeout completing the Service Request procedure");
@@ -820,7 +820,7 @@
function f_iu_release_req(template (value) Cause cause) runs on BSSGP_ConnHdlr {
timer T := 5.0;
- BSSAP.send(ts_RANAP_IuReleaseRequest(cause));
+ RAN_CONN.send(ts_RANAP_IuReleaseRequest(cause));
T.start;
alt {
[] as_iu_release_compl_disc_ext() { T.stop; };
@@ -859,7 +859,7 @@
altstep as_ranap_rab_ass_req(inout PdpActPars apars) runs on BSSGP_ConnHdlr {
var RANAP_PDU ranap;
- [] BSSAP.receive(tr_RANAP_RabAssReq(?)) -> value ranap {
+ [] RAN_CONN.receive(tr_RANAP_RabAssReq(?)) -> value ranap {
var RAB_ID rab_id := f_ranap_rab_ass_req_extract_rab_id(ranap);
f_ranap_rab_ass_req_validate_tli(ranap, apars);
@@ -872,7 +872,7 @@
tla_bits := oct2bit(apars.rnc_ip_u);
}
l := ts_RAB_SMdL_ps(rab_id, tla_bits, apars.rnc_tei_u);
- BSSAP.send(ts_RANAP_RabAssResp(l));
+ RAN_CONN.send(ts_RANAP_RabAssResp(l));
}
}
@@ -1020,22 +1020,22 @@
altstep as_pdp_ctx_act_iu(inout PdpActPars apars, integer ran_index := 0) runs on BSSGP_ConnHdlr {
var boolean exp_rej := ispresent(apars.exp_rej_cause);
- [exp_rej] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_REJ(apars.tid, apars.exp_rej_cause))) {
+ [exp_rej] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_REJ(apars.tid, apars.exp_rej_cause))) {
setverdict(pass);
}
- [exp_rej] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_ACCEPT)) {
+ [exp_rej] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_ACCEPT)) {
setverdict(fail, "Unexpected PDP CTX ACT ACC");
mtc.stop;
}
- [not exp_rej] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_REJ(apars.tid, ?))) {
+ [not exp_rej] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_REJ(apars.tid, ?))) {
setverdict(fail, "Unexpected PDP CTX ACT FAIL");
mtc.stop;
}
- [not exp_rej] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_REJ(apars.tid, ?))) {
+ [not exp_rej] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_REJ(apars.tid, ?))) {
setverdict(fail, "Unexpected PDP CTX ACT FAIL");
mtc.stop;
}
- [not exp_rej] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_ACCEPT(apars.tid, apars.sapi))) {
+ [not exp_rej] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_ACT_PDP_ACCEPT(apars.tid, apars.sapi))) {
setverdict(pass);
}
}
@@ -1075,7 +1075,7 @@
alt {
[] as_pdp_ctx_act(apars, ran_index) { T.stop; setverdict(pass); }
[is_gb(ran_index)] BSSGP[ran_index].receive { repeat; }
- [is_iu(ran_index)] BSSAP.receive { repeat; }
+ [is_iu(ran_index)] RAN_CONN.receive { repeat; }
[] T.timeout {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Timeout completing the PDP ACT");
@@ -1096,7 +1096,7 @@
alt {
[is_gb(ran_index)] BSSGP[ran_index].receive(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid));
[is_gb(ran_index)] as_xid(apars, ran_index);
- [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid)));
+ [is_iu(ran_index)] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid)));
}
setverdict(pass);
}
@@ -1105,7 +1105,7 @@
[is_gb(ran_index)] BSSGP[ran_index].receive(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true)) {
f_send_l3(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid), ran_index);
}
- [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true))) {
+ [is_iu(ran_index)] RAN_CONN.receive(tr_PDU_DTAP_PS_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true))) {
f_send_l3(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid), ran_index);
}
}
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index a94eb3a..c1ab7cc 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -531,8 +531,8 @@
/* FIXME: support multiple RNCs */
if (g_iu_enable) {
- connect(vc_conn:BSSAP, g_iu[0].ranap.vc_RAN:CLIENT);
- connect(vc_conn:BSSAP_PROC, g_iu[0].ranap.vc_RAN:PROC);
+ connect(vc_conn:RAN_CONN, g_iu[0].ranap.vc_RAN:CLIENT);
+ connect(vc_conn:RAN_CONN_PROC, g_iu[0].ranap.vc_RAN:PROC);
for (var integer i := 0; i < NUM_RNC; i := i+1) {
/* GTP[0] is used by emulated GGSN: */
diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn
index 78215bb..3400f43 100644
--- a/sgsn/SGSN_Tests_Iu.ttcn
+++ b/sgsn/SGSN_Tests_Iu.ttcn
@@ -340,7 +340,7 @@
var octetstring payload := f_rnd_octstring(100);
f_ggsn_gtpu_send(apars, payload);
- BSSAP.receive(tr_RANAP_Paging(ps_domain, imsi_hex2oct(g_pars.imsi)));
+ RAN_CONN.receive(tr_RANAP_Paging(ps_domain, imsi_hex2oct(g_pars.imsi)));
/* Ue comes back, answering the paging:
* SGSN recreates the Iu ctx and recovers the Direct Tunnel RNC<->GGSN: */
@@ -399,9 +399,9 @@
apars.ggsn_tei_c,
GTP_CAUSE_REQUEST_ACCEPTED));
- BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_DISC_IND);
g_pars.rnc_send_initial_ue := true;
- BSSAP.receive(tr_RANAP_Paging(ps_domain, imsi_hex2oct(g_pars.imsi)));
+ RAN_CONN.receive(tr_RANAP_Paging(ps_domain, imsi_hex2oct(g_pars.imsi)));
/* Ue comes back, answering the paging:
* SGSN recreates the Iu ctx and recovers the Direct Tunnel RNC<->GGSN: */
To view, visit change 41488. To unsubscribe, or for help writing mail filters, visit settings.