pespin submitted this change.

View Change



3 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.

Approvals: fixeria: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified
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/BSC_Tests.ttcn
M bsc/BSC_Tests_ASCI.ttcn
M bsc/BSC_Tests_LCLS.ttcn
M bsc/BSC_Tests_VAMOS.ttcn
M bsc/MSC_ConnectionHandler.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
18 files changed, 656 insertions(+), 656 deletions(-)

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/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 11e8784..56ffdee 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -2173,7 +2173,7 @@
{name := "TTCN3.bts.0.chan.rf_fail_sdcch", mtype := "c", min := 1, max := 1}
};
f_statsd_expect(expect);
- BSSAP.receive(tr_BSSMAP_ClearRequest);
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest);
f_perform_clear();
}
testcase TC_stats_conn_fail() runs on test_CT {
@@ -2588,7 +2588,7 @@
/* SAPI0 has already been established by f_establish_fully(), establish SAPI3 */
RSL.send(ts_RSL_EST_IND(g_chan_nr, ts_RslLinkID_SACCH(3), '0904'O));
/* Expect BSSAP/DTAP on SAPI3 (DLCI IE) */
- BSSAP.receive(PDU_BSSAP:{
+ RAN_CONN.receive(PDU_BSSAP:{
discriminator := '1'B,
spare := '0000000'B,
dlci := 'C3'O,
@@ -4097,7 +4097,7 @@
connect(vc_conn:RSL2, bts[2][0].rsl.vc_RSL:CLIENT_PT);
connect(vc_conn:RSL2_PROC, bts[2][0].rsl.vc_RSL:RSL_PROC);
}
- connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT);
+ connect(vc_conn:RAN_CONN, g_bssap[bssap_idx].vc_RAN:CLIENT);
if (mp_enable_lcs_tests) {
connect(vc_conn:BSSAP_LE, g_bssap_le.vc_BSSAP_LE:CLIENT);
connect(vc_conn:BSSAP_LE_PROC, g_bssap_le.vc_BSSAP_LE:PROC);
@@ -5442,7 +5442,7 @@
timer T := 10.0;
T.start;
alt {
- [] BSSAP.receive(tr_BSSMAP_ComplL3);
+ [] RAN_CONN.receive(tr_BSSMAP_ComplL3);
[] T.timeout {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION");
}
@@ -5506,7 +5506,7 @@
timer T := 10.0;
T.start;
alt {
- [] BSSAP.receive(tr_BSSMAP_ComplL3);
+ [] RAN_CONN.receive(tr_BSSMAP_ComplL3);
[] T.timeout {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION");
}
@@ -5632,11 +5632,11 @@
f_create_chan_and_exp();
/* we should now have a COMPL_L3 at the MSC */

- BSSAP.send(ts_BSSMAP_ClassmarkRequest);
+ RAN_CONN.send(ts_BSSMAP_ClassmarkRequest);
RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_CM_ENQUIRY));

f_rsl_send_l3(ts_RRM_CM_CHG(valueof(ts_CM2)));
- BSSAP.receive(tr_BSSMAP_ClassmarkUpd(?, omit));
+ RAN_CONN.receive(tr_BSSMAP_ClassmarkUpd(?, omit));
setverdict(pass);

f_perform_clear();
@@ -5660,7 +5660,7 @@
/* we should now have a COMPL_L3 at the MSC */

/* Send CommonID */
- BSSAP.send(ts_BSSMAP_CommonId(g_pars.imsi));
+ RAN_CONN.send(ts_BSSMAP_CommonId(g_pars.imsi));

/* Use VTY to verify that the IMSI of the subscr_conn is set */
var charstring regex := "*(IMSI: " & hex2str(g_pars.imsi) & ")*";
@@ -5693,7 +5693,7 @@
var PDU_BSSAP bssap;
T.start;
alt {
- [] BSSAP.receive(PDU_BSSAP:?) -> value bssap {
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value bssap {
setverdict(fail, "Unexpected BSSMAP ", bssap);
mtc.stop;
}
@@ -5779,7 +5779,7 @@
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_STATUS)) {
setverdict(pass);
}
- [] BSSAP.receive { setverdict(fail, "unexpected BSSAP"); }
+ [] RAN_CONN.receive { setverdict(fail, "unexpected BSSAP"); }
[] T.timeout { setverdict(fail, "Timeout waiting for RR STATUS"); }
}
f_perform_clear();
@@ -5876,7 +5876,7 @@

/* Since this is an internal handover we expect the BSC to inform the
* MSC about the event */
- BSSAP.receive(tr_BSSMAP_HandoverPerformed);
+ RAN_CONN.receive(tr_BSSMAP_HandoverPerformed);

/* Check the amount of MGCP transactions is still consistant with the
* test expectation */
@@ -6024,9 +6024,9 @@
RSL.send(ts_RSL_CONN_FAIL_IND(g_chan_nr, RSL_ERR_RADIO_LINK_FAIL));

var PDU_BSSAP rx_clear_request;
- BSSAP.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request;
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request;
var BssmapCause cause := bit2int(rx_clear_request.pdu.bssmap.clearRequest.cause.causeValue);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));

var RR_Cause rr_cause := GSM48_RR_CAUSE_ABNORMAL_UNSPEC;

@@ -6043,8 +6043,8 @@
RSL1.send(ts_RSL_RF_CHAN_REL_ACK(new_chan_nr));
f_rslem_unregister(0, g_chan_nr, PT := RSL1_PROC);
}
- [] BSSAP.receive(tr_BSSMAP_ClearComplete) {
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearComplete) {
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
}
}

@@ -6118,7 +6118,7 @@
RSL.send(ts_RSL_MEAS_RES(g_chan_nr, 0, ts_RSL_IE_UplinkMeas, ts_RSL_IE_BS_Power(0), ts_RSL_IE_L1Info,
l3_mr, 0));

- BSSAP.receive(tr_BSSMAP_HandoverRequired(exp_oldToNewBSSIEs));
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequired(exp_oldToNewBSSIEs));
}

f_sleep(0.5);
@@ -6130,7 +6130,7 @@
log("Remote cell's RR Handover Command passed through as L3 Info: ", rr_ho_cmd);
var octetstring rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd);
log("Remote cell's RR Handover Command passed through as L3 Info, encoded: ", rr_ho_cmd_enc);
- BSSAP.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc));
+ RAN_CONN.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc));

/* expect the Handover Command to go out on RR */
var RSL_Message rsl_ho_cmd
@@ -6156,7 +6156,7 @@

var myBSSMAP_Cause cause_val := GSM0808_CAUSE_HANDOVER_SUCCESSFUL;
var BssmapCause cause := enum2int(cause_val);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));

f_expect_dlcx_conns();

@@ -6164,8 +6164,8 @@
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE));
[] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr));
[] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr));
- [] BSSAP.receive(tr_BSSMAP_ClearComplete) {
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearComplete) {
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
}
}
setverdict(pass);
@@ -6229,7 +6229,7 @@
dtap := l3
}
};
- BSSAP.receive(exp_data);
+ RAN_CONN.receive(exp_data);
setverdict(pass);
}

@@ -6238,7 +6238,7 @@
template (value) OCT1 dlci := '00'O,
octetstring l3 := '0123456789'O)
runs on MSC_ConnHdlr {
- BSSAP.send(PDU_BSSAP:{
+ RAN_CONN.send(PDU_BSSAP:{
discriminator := '1'B,
spare := '0000000'B,
dlci := dlci,
@@ -6265,7 +6265,7 @@
f_bts_0_cfg(BSCVTY, {"no neighbor lac 99", "neighbor lac 99 arfcn 123 bsic any"});
f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");

- BSSAP.receive(tr_BSSMAP_HandoverRequired);
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequired);

/* osmo-bsc should time out 10 seconds after the handover started.
* Let's give it a bit extra. */
@@ -6310,7 +6310,7 @@
f_bts_0_cfg(BSCVTY, {"no neighbor lac 99", "neighbor lac 99 arfcn 123 bsic any"});
f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");

- BSSAP.receive(tr_BSSMAP_HandoverRequired);
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequired);

f_sleep(0.5);
/* The MSC negotiates Handover Request and Handover Request Ack with
@@ -6321,7 +6321,7 @@
log("Remote cell's RR Handover Command passed through as L3 Info: ", rr_ho_cmd);
var octetstring rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd);
log("Remote cell's RR Handover Command passed through as L3 Info, encoded: ", rr_ho_cmd_enc);
- BSSAP.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc));
+ RAN_CONN.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc));

/* expect the Handover Command to go out on RR */
var RSL_Message rsl_ho_cmd
@@ -6346,7 +6346,7 @@
f_rsl_send_l3(ts_RRM_HandoverFailure('00'O));

/* Should tell the MSC about the failure */
- BSSAP.receive(tr_BSSMAP_HandoverFailure);
+ RAN_CONN.receive(tr_BSSMAP_HandoverFailure);

f_sleep(1.0);

@@ -6393,7 +6393,7 @@
f_bts_0_cfg(BSCVTY, {"no neighbor lac 99", "neighbor lac 99 arfcn 123 bsic any"});
f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");

- BSSAP.receive(tr_BSSMAP_HandoverRequired);
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequired);

f_sleep(0.5);
/* The MSC negotiates Handover Request and Handover Request Ack with
@@ -6404,7 +6404,7 @@
log("Remote cell's RR Handover Command passed through as L3 Info: ", rr_ho_cmd);
var octetstring rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd);
log("Remote cell's RR Handover Command passed through as L3 Info, encoded: ", rr_ho_cmd_enc);
- BSSAP.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc));
+ RAN_CONN.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc));

/* expect the Handover Command to go out on RR */
var RSL_Message rsl_ho_cmd
@@ -6430,11 +6430,11 @@
* after Clear Command */

var PDU_BSSAP rx_clear_request;
- BSSAP.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request;
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request;
log("Got BSSMAP Clear Request");
/* Instruct BSC to clear channel */
var BssmapCause cause := bit2int(rx_clear_request.pdu.bssmap.clearRequest.cause.causeValue);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));

var MgcpCommand mgcp;
interleave {
@@ -6452,8 +6452,8 @@
}

f_expect_dlcx_conns();
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

setverdict(pass);
f_sleep(1.0);
@@ -6501,36 +6501,36 @@
oldToNewBSSIEs := oldToNewBSSIEs,
enc := g_pars.encr);
if (g_pars.inter_bsc_ho_in__ho_req_in_initial_sccp_cr) {
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ho_req));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ho_req));
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);
} else {
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, omit));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
- BSSAP.send(ho_req);
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, omit));
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.send(ho_req);
}

alt {
- [] BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap {
if (g_pars.expect_ho_fail) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Expected Handover Request to fail, but got Handover Request Ack")
}
}
- [] BSSAP.receive(tr_BSSMAP_HandoverFailure) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverFailure) -> value rx_bssap {
if (not g_pars.expect_ho_fail) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Expected Handover Request to succeed, but got Handover Failure")
}
// TODO: evaluate correct cause value. But osmo-bsc doesn't seem to send meaningful causes yet!
// For now just accept any cause.
- BSSAP.receive(tr_BSSMAP_ClearRequest);
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest);
setverdict(pass);
return;
}
}

if (g_pars.expect_ho_fail_lchan_est) {
- BSSAP.receive(tr_BSSMAP_HandoverFailure);
+ RAN_CONN.receive(tr_BSSMAP_HandoverFailure);
setverdict(pass);

/* When we let MGCP MDCX run into a timeout, it's still in the
@@ -6640,7 +6640,7 @@

RSL.send(ts_RSL_HANDO_DET(new_chan_nr));

- BSSAP.receive(tr_BSSMAP_HandoverDetect);
+ RAN_CONN.receive(tr_BSSMAP_HandoverDetect);

/* send handover complete over the new channel */

@@ -6648,7 +6648,7 @@
RSL.send(ts_RSL_EST_IND(new_chan_nr, valueof(ts_RslLinkID_DCCH(0)),
enc_PDU_ML3_MS_NW(l3_tx)));

- BSSAP.receive(tr_BSSMAP_HandoverComplete);
+ RAN_CONN.receive(tr_BSSMAP_HandoverComplete);
deactivate(as_media);
setverdict(pass);
}
@@ -6668,7 +6668,7 @@
if (g_pars.expect_ho_fail) {
f_perform_clear_no_lchan();
} else if (g_pars.expect_ho_fail_lchan_est) {
- BSSAP.receive(tr_BSSMAP_ClearRequest);
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest);
f_perform_clear_no_lchan();
} else {
f_perform_clear(exp_rr_rel_tmpl := exp_rr_rel_tmpl);
@@ -6904,16 +6904,16 @@
f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR);
activate(as_Media());

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
f_gen_handover_req()));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */

var PDU_BSSAP rx_bssap;
var octetstring ho_command_str;

- BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;

ho_command_str := rx_bssap.pdu.bssmap.handoverRequestAck.layer3Information.layer3info;
log("Received L3 Info in HO Request Ack: ", ho_command_str);
@@ -6945,11 +6945,11 @@

var myBSSMAP_Cause cause_val := GSM0808_CAUSE_RADIO_INTERFACE_FAILURE_REVERSION;
var BssmapCause cause := enum2int(cause_val);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));

f_expect_dlcx_conns();
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

setverdict(pass);
f_sleep(1.0);
@@ -6994,16 +6994,16 @@
f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR);
activate(as_Media());

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
f_gen_handover_req()));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */

var PDU_BSSAP rx_bssap;
var octetstring ho_command_str;

- BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;

ho_command_str := rx_bssap.pdu.bssmap.handoverRequestAck.layer3Information.layer3info;
log("Received L3 Info in HO Request Ack: ", ho_command_str);
@@ -7031,7 +7031,7 @@

RSL.send(ts_RSL_HANDO_DET(new_chan_nr));

- BSSAP.receive(tr_BSSMAP_HandoverDetect);
+ RAN_CONN.receive(tr_BSSMAP_HandoverDetect);

/* The MSC chooses to clear the connection now, maybe we got the
* Handover RACH on the new cell but the MS still signaled Handover
@@ -7039,7 +7039,7 @@

var myBSSMAP_Cause cause_val := GSM0808_CAUSE_RADIO_INTERFACE_FAILURE_REVERSION;
var BssmapCause cause := enum2int(cause_val);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));

f_expect_dlcx_conns();
RSL.receive(tr_RSL_DEACT_SACCH(new_chan_nr));
@@ -7047,9 +7047,9 @@
RSL.send(ts_RSL_RF_CHAN_REL_ACK(new_chan_nr));
f_rslem_unregister(0, new_chan_nr);

- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.receive(tr_BSSMAP_HandoverFailure);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.receive(tr_BSSMAP_HandoverFailure);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

f_sleep(1.0);
}
@@ -7087,16 +7087,16 @@
f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR);
activate(as_Media());

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
f_gen_handover_req()));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */

var PDU_BSSAP rx_bssap;
var octetstring ho_command_str;

- BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;

ho_command_str := rx_bssap.pdu.bssmap.handoverRequestAck.layer3Information.layer3info;
log("Received L3 Info in HO Request Ack: ", ho_command_str);
@@ -7120,13 +7120,13 @@
* tells the MS to handover to the new lchan. But the MS never shows up
* on the new lchan. */

- BSSAP.receive(tr_BSSMAP_HandoverFailure);
+ RAN_CONN.receive(tr_BSSMAP_HandoverFailure);

/* Did osmo-bsc also send a Clear Request? */
timer T := 0.5;
T.start;
alt {
- [] BSSAP.receive(tr_BSSMAP_ClearRequest);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearRequest);
[] T.timeout { }
}

@@ -7135,11 +7135,11 @@

var myBSSMAP_Cause cause_val := GSM0808_CAUSE_RADIO_INTERFACE_FAILURE_REVERSION;
var BssmapCause cause := enum2int(cause_val);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));

f_expect_dlcx_conns();
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

f_sleep(1.0);
}
@@ -7179,16 +7179,16 @@
f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR);
activate(as_Media());

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
f_gen_handover_req()));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */

var PDU_BSSAP rx_bssap;
var octetstring ho_command_str;

- BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;
+ RAN_CONN.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;

ho_command_str := rx_bssap.pdu.bssmap.handoverRequestAck.layer3Information.layer3info;
log("Received L3 Info in HO Request Ack: ", ho_command_str);
@@ -7212,18 +7212,18 @@
* tells the MS to handover to the new lchan. But the MS never shows up
* on the new lchan. */

- BSSAP.receive(tr_BSSMAP_HandoverFailure);
+ RAN_CONN.receive(tr_BSSMAP_HandoverFailure);

/* MSC plays dumb and sends no Clear Command */
var PDU_BSSAP rx_clear_request;

- BSSAP.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request {
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request {
var BssmapCause cause := bit2int(rx_clear_request.pdu.bssmap.clearRequest.cause.causeValue);
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));
};
f_expect_dlcx_conns();
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

f_sleep(1.0);
}
@@ -7382,7 +7382,7 @@
repeat;
}
}
- [] BSSAP.receive(tr_BSSMAP_HandoverRequired) {
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequired) {
if (expect_handover and is_inter_bsc_handover) {
setverdict(pass);
log("f_probe_for_handover(" & log_label & "): Got BSSMAP Handover Required as expected.");
@@ -8625,7 +8625,7 @@
var default ack_dlcx := activate(as_mgcp_ack_all_dlcx());
var default ack_rel_req := activate(as_rsl_ack_all_rel_req());
f_logp(BSCVTY, "MSC instructs BSC to clear channel");
- BSSAP.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
interleave {
[] rsl_pt.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch exp_rr_rel_tmpl)) {
f_logp(BSCVTY, "Got RSL RR Release");
@@ -8633,10 +8633,10 @@
[] rsl_pt.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {
f_logp(BSCVTY, "Got RSL Deact SACCH");
}
- [] BSSAP.receive(tr_BSSMAP_ClearComplete) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearComplete) {
f_logp(BSCVTY, "Got BSSMAP Clear Complete");
/* Also drop the SCCP connection */
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
}
[] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack");
@@ -8655,15 +8655,15 @@
var default ack_dlcx := activate(as_mgcp_ack_all_dlcx());
var default ack_rel_req := activate(as_rsl_ack_all_rel_req());
f_logp(BSCVTY, "MSC instructs BSC to clear channel");
- BSSAP.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
interleave {
[] rsl_pt.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {
f_logp(BSCVTY, "Got RSL Deact SACCH");
}
- [] BSSAP.receive(tr_BSSMAP_ClearComplete) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearComplete) {
f_logp(BSCVTY, "Got BSSMAP Clear Complete");
/* Also drop the SCCP connection */
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
}
[] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack");
@@ -8678,11 +8678,11 @@
friend function f_perform_clear_no_lchan()
runs on MSC_ConnHdlr {
f_logp(BSCVTY, "MSC instructs BSC to clear channel");
- BSSAP.send(ts_BSSMAP_ClearCommand(0));
- BSSAP.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
f_logp(BSCVTY, "Got BSSMAP Clear Complete");
/* Also drop the SCCP connection */
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
}

friend function f_perform_clear_test_ct(DchanTuple dt)
@@ -8751,11 +8751,11 @@
var PDU_BSSAP bssap;
T.start;
alt {
- [] BSSAP.receive(exp_l3_compl) -> value bssap {
+ [] RAN_CONN.receive(exp_l3_compl) -> value bssap {
f_logp(BSCVTY, "received expected Complete Layer 3 Info at MSC");
log("rx exp_l3_compl = ", bssap);
}
- [] BSSAP.receive(tr_BSSMAP_ComplL3) {
+ [] RAN_CONN.receive(tr_BSSMAP_ComplL3) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching COMPLETE LAYER 3 INFORMATION");
}
[] T.timeout {
@@ -9170,7 +9170,7 @@

paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
valueof(ts_BSSMAP_Paging(imsi, cid_list, omit, bssmap_chneed))));
- BSSAP.send(paging);
+ RAN_CONN.send(paging);

/* Register any RSL conn so that the Paging Command gets received here. With the current RSL_Emulation's main()
* handling of '[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD()))' it doesn't matter at all which
@@ -9221,7 +9221,7 @@

paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
valueof(ts_BSSMAP_Paging('001010000000011'H, cid_list, tmsi, bssmap_chneed))));
- BSSAP.send(paging);
+ RAN_CONN.send(paging);

/* Register any RSL conn so that the Paging Command gets received here. With the current RSL_Emulation's main()
* handling of '[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD()))' it doesn't matter at all which
@@ -9528,13 +9528,13 @@

T.start;
alt {
- [] BSSAP.receive(tr_BSSAP_DTAP) -> value emerg_setup_data_ind_bssap {
+ [] RAN_CONN.receive(tr_BSSAP_DTAP) -> value emerg_setup_data_ind_bssap {
emerg_setup := dec_PDU_ML3_MS_NW(emerg_setup_data_ind_bssap.pdu.dtap);
if (not isbound(emerg_setup.msgs.cc.emergencySetup)) {
setverdict(fail, "no emergency setup");
}
}
- [] BSSAP.receive {
+ [] RAN_CONN.receive {
setverdict(fail, "unexpected BSSAP message!");
}
[] T.timeout {
@@ -9572,7 +9572,7 @@
};
f_create_mgcp_expect(mgcpcrit);

- BSSAP.send(ass_cmd);
+ RAN_CONN.send(ass_cmd);

var AssignmentState st := valueof(ts_AssignmentStateInit);
st.rtp_stream := true;
@@ -9580,7 +9580,7 @@
alt {
[] as_modify(st);
[] as_Media();
- [st.modify_done] BSSAP.receive(exp_compl) {
+ [st.modify_done] RAN_CONN.receive(exp_compl) {
setverdict(pass);
}
}
@@ -9625,7 +9625,7 @@
setverdict(fail, "timout waiting for RR CHANNEL RELEASE!");
}
}
- BSSAP.receive(tr_BSSMAP_ClearRequest);
+ RAN_CONN.receive(tr_BSSMAP_ClearRequest);
f_perform_clear_no_rr_rel();
}

@@ -10397,7 +10397,7 @@
f_establish_fully(omit, omit);
f_bssap_le_register_imsi(g_pars.imsi, omit);

- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));

var PDU_BSSAP_LE plr;
@@ -10431,7 +10431,7 @@
/* SMLC got the TA from the BSC, now responds with geo information data. */
BSSAP_LE.send(ts_BSSMAP_LE_PerfLocResp(gad_ell_point_unc_circle, omit));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

/* The LCS was using an active A-interface conn. It should still remain active after this. */
f_mo_l3_transceive();
@@ -10479,15 +10479,15 @@
private function f_clear_A_conn() runs on MSC_ConnHdlr
{
var BssmapCause cause := 0;
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

timer no_more_bssap := 5.0;
no_more_bssap.start;
alt {
[] no_more_bssap.timeout { break; }
- [] BSSAP.receive(tr_BSSAP_BSSMAP) {
+ [] RAN_CONN.receive(tr_BSSAP_BSSMAP) {
setverdict(fail, "Expected no more BSSAP after Clear Complete");
mtc.stop;
}
@@ -10504,7 +10504,7 @@
/* When an lchan is active, we can send some L3 data from the BTS side and verify that it shows up on the other
* side towards the MSC. When there is no lchan, this is not possible. To probe whether the A-interface
* connection is still up, we need something that echos back on the A-interface. Another LCS request! */
- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?));

@@ -10528,10 +10528,10 @@
g_chan_nr := new_chan_nr;
f_rslem_register(0, g_chan_nr);

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('001'H, '01'H, 1, 0)))));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

var PDU_BSSAP_LE plr;
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr);
@@ -10556,7 +10556,7 @@
BSSAP_LE.send(ts_BSSMAP_LE_PerfLocResp(gad_ell_point_unc_circle, omit));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);

- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

/* The lchan is gone, the A-interface conn was created for the LCS only.
* Still it is clearly the MSC's job to decide whether to tear down the conn or not. */
@@ -10589,13 +10589,13 @@
f_bssap_le_register_imsi(g_pars.imsi, omit);

/* provoke an abort by omitting both IMSI and IMEI */
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
valueof(ts_BSSMAP_Perform_Location_Request(omit,
ts_CellId_CGI('262'H, '42'H, 23, 42)))));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

/* BSC tells MSC about failure */
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(
locationEstimate := omit, positioningData := omit,
lCS_Cause := tr_BSSMAP_LcsCause(BSSMAP_LCS_CAUSE_DATA_MISSING_IN_REQ)));

@@ -10628,7 +10628,7 @@
f_establish_fully(omit, omit);
f_bssap_le_register_imsi(g_pars.imsi, omit);

- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));

var PDU_BSSAP_LE plr;
@@ -10644,7 +10644,7 @@
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocAbort(BSSMAP_LE_LCS_CAUSE_SYSTEM_FAILURE));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);

- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(
locationEstimate := omit, positioningData := omit,
lCS_Cause := tr_BSSMAP_LcsCause(BSSMAP_LCS_CAUSE_SYSTEM_FAILURE)));

@@ -10701,10 +10701,10 @@
g_chan_nr := new_chan_nr;
f_rslem_register(0, g_chan_nr);

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('001'H, '01'H, 1, 0)))));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

var PDU_BSSAP_LE plr;
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr);
@@ -10730,7 +10730,7 @@
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);

/* BSC tells MSC about failure */
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(
locationEstimate := omit, positioningData := omit,
lCS_Cause := tr_BSSMAP_LcsCause(BSSMAP_LCS_CAUSE_REQUEST_ABORTED)));

@@ -10768,10 +10768,10 @@
g_chan_nr := new_chan_nr;
f_rslem_register(0, g_chan_nr);

- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc,
valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('001'H, '01'H, 1, 0)))));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

var PDU_BSSAP_LE plr;
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr);
@@ -10790,7 +10790,7 @@
/* SMLC got the TA from the BSC, now responds with geo information data. */
BSSAP_LE.send(ts_BSSMAP_LE_PerfLocResp(gad_ell_point_unc_circle, omit));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

/* The lchan should still exist, it was from a CM Service Request. */
f_mo_l3_transceive();
@@ -10823,7 +10823,7 @@
f_establish_fully(omit, omit);
f_bssap_le_register_imsi(g_pars.imsi, omit);

- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));

var PDU_BSSAP_LE plr;
@@ -10857,7 +10857,7 @@

interleave {
/* Expect the BSC to inform the MSC about the handover */
- [] BSSAP.receive(tr_BSSMAP_HandoverPerformed);
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverPerformed);

/* Expect the BSC to inform the SMLC about the handover */
[] BSSAP_LE.receive(tr_BSSMAP_LE_ConnInfo(BSSMAP_LE_PROT_BSSLAP, ?)) -> value(rx_bsslap) {
@@ -10868,7 +10868,7 @@
/* SMLC now responds with geo information data. */
BSSAP_LE.send(ts_BSSMAP_LE_PerfLocResp(gad_ell_point_unc_circle, omit));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

/* lchan still active */
f_mo_l3_transceive(RSL1);
@@ -10903,13 +10903,13 @@

/* Do a Location Request in-between the CC call setup */
f_bssap_le_register_imsi(g_pars.imsi, omit);
- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?));
/* SMLC got the TA from the BSC, now responds with geo information data. */
BSSAP_LE.send(ts_BSSMAP_LE_PerfLocResp(gad_ell_point_unc_circle, omit));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

f_assignment_emerg_setup_voice();

@@ -10931,7 +10931,7 @@
}

private altstep no_bssmap_clear_req() runs on MSC_ConnHdlr {
- [] BSSAP.receive(tr_BSSMAP_ClearRequest) {
+ [] RAN_CONN.receive(tr_BSSMAP_ClearRequest) {
setverdict(fail, "unexpected BSSMAP Clear Request");
mtc.stop;
}
@@ -10950,7 +10950,7 @@

/* Start a Location Request to locate the emergency */
f_bssap_le_register_imsi(g_pars.imsi, omit);
- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));
BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?));

@@ -10976,7 +10976,7 @@
/* Still expect the Location Response to find its way to the MSC. */
BSSAP_LE.send(ts_BSSMAP_LE_PerfLocResp(gad_ell_point_unc_circle, omit));
BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);
- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

setverdict(pass);

@@ -11034,10 +11034,10 @@
f_establish_fully(omit, omit);
f_bssap_le_register_imsi(g_pars.imsi, omit);

- BSSAP.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
+ RAN_CONN.send(valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi),
ts_CellId_CGI('262'H, '42'H, 23, 42))));

- BSSAP.receive(tr_BSSMAP_Perform_Location_Response(
+ RAN_CONN.receive(tr_BSSMAP_Perform_Location_Response(
locationEstimate := omit, positioningData := omit,
lCS_Cause := tr_BSSMAP_LcsCause(BSSMAP_LCS_CAUSE_SYSTEM_FAILURE)));

@@ -11251,7 +11251,7 @@

/* Instruct BSC to clear channel */
var BssmapCause cause := 0;
- BSSAP.send(ts_BSSMAP_ClearCommand(cause));
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(cause));
interleave {
[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) {}
[] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {}
@@ -11259,8 +11259,8 @@
RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
f_rslem_unregister(0, g_chan_nr);
}
- [] BSSAP.receive(tr_BSSMAP_ClearComplete) {
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearComplete) {
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
}
}
f_expect_dlcx_conns();
@@ -11358,7 +11358,7 @@

f_create_bssmap_exp(l3_enc);
RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn, rsl_pt := RSL1, rsl_proc_pt := RSL1_PROC);
- BSSAP.receive(tr_BSSMAP_ComplL3(l3_enc));
+ RAN_CONN.receive(tr_BSSMAP_ComplL3(l3_enc));

/* MSC got the CM Re-Establishment request and first off clears the previous conn. */
COORD.send(REEST_CLEAR);
@@ -11385,7 +11385,7 @@

f_rslem_dchan_queue_enable(RSL1_PROC);

- BSSAP.send(ass_cmd);
+ RAN_CONN.send(ass_cmd);

var PDU_BSSAP bssap;

@@ -11393,7 +11393,7 @@
[] as_assignment(st, rsl_pt := RSL1, rsl_proc_pt := RSL1_PROC);
[] as_Media_ipacc(RSL1, RSL2);
[] as_Media_mgw();
- [st.assignment_done] BSSAP.receive(expect_assignment_compl) {
+ [st.assignment_done] RAN_CONN.receive(expect_assignment_compl) {
break;
}
}
@@ -11891,7 +11891,7 @@
{
f_create_chan_and_exp();
/* we should now have a COMPL_L3 at the MSC */
- BSSAP.send(ts_PDU_DTAP_MT(ts_CM_SERV_REJ('02'O), '00'O));
+ RAN_CONN.send(ts_PDU_DTAP_MT(ts_CM_SERV_REJ('02'O), '00'O));
RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_CM_SERV_REJ));
f_perform_clear();
f_sleep(1.0);
@@ -11942,7 +11942,7 @@
f_rslem_register(0, chan_nr);

f_rslem_set_auto_chan_act_ack(RSL_PROC, false);
- BSSAP.send(ass_cmd);
+ RAN_CONN.send(ass_cmd);


/* Wait for the Channel Activ for the TCH channel */
@@ -11956,13 +11956,13 @@
RSL.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl_ud.streamId));

interleave {
- [] BSSAP.receive(tr_BSSMAP_AssignmentFail);
- [] BSSAP.receive(tr_BSSMAP_ClearRequest);
+ [] RAN_CONN.receive(tr_BSSMAP_AssignmentFail);
+ [] RAN_CONN.receive(tr_BSSMAP_ClearRequest);
}

- BSSAP.send(ts_BSSMAP_ClearCommand(0));
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

var MgcpCommand mgcp;
var MGCP_RecvFrom mrf;
@@ -12536,10 +12536,10 @@
cIl_LAC := { ts_BSSMAP_CI_LAC(99) }
};
alt {
- [] BSSAP.receive(tr_BSSMAP_HandoverRequired(cid_list := cid_list)) {
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequired(cid_list := cid_list)) {
setverdict(pass);
}
- [] BSSAP.receive(tr_BSSMAP_HandoverRequired()) {
+ [] RAN_CONN.receive(tr_BSSMAP_HandoverRequired()) {
setverdict(fail, "Handover has unexpected LAC in Cell Identification List. The BSC probably"
& " didn't parse the multi-band measurement report correctly.");
}
diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn
index f9c546c..7e49744 100644
--- a/bsc/BSC_Tests_ASCI.ttcn
+++ b/bsc/BSC_Tests_ASCI.ttcn
@@ -88,7 +88,7 @@
timer T := 2.0;
T.start;
alt {
- [] BSSAP.receive(tr_BSSAP_BSSMAP) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSAP_BSSMAP) -> value rx_bssap {
setverdict(fail, "Got BSSAP message from BSC. This is unexpected:", rx_bssap);
}
[] T.timeout { }
@@ -117,29 +117,29 @@
f_sleep(1.0);

/* VGCS/VBS SETUP REQ in SCCP CR (must be the first message) */
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, setup_req));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, setup_req));
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

alt {
- [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_SetupAck) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_VGCS_VBS_SetupAck) -> value rx_bssap {
log("VGCS: got setup ack");
if (not g_pars.asci_test.vgcs_setup_ok) {
COORD.send(COORD_VGCS_CALL_EST);
repeat;
}
- BSSAP.send(ts_BSSMAP_ClearCommand(0));
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
setverdict(pass);
return;
}
- [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_SetupRefuse) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_VGCS_VBS_SetupRefuse) -> value rx_bssap {
log("VGCS: got setup refuse");
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
"Expected ASCI Setup to succeed, but got fail");
return;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkReq) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkReq) -> value rx_bssap {
log("VGCS: received uplink req");
uplink_req := true;
if (g_pars.asci_test.delay_msc) {
@@ -148,10 +148,10 @@
}
if (g_pars.asci_test.vgcs_uplink_reject) {
log("VGCS: sending uplink rej cmd");
- BSSAP.send(ts_BSSMAP_UplinkRejCmd(9));
+ RAN_CONN.send(ts_BSSMAP_UplinkRejCmd(9));
} else {
log("VGCS: sending uplink req ack");
- BSSAP.send(ts_BSSMAP_UplinkReqAck(omit));
+ RAN_CONN.send(ts_BSSMAP_UplinkReqAck(omit));
}
if (g_pars.asci_test.vgcs_talker_req or
g_pars.asci_test.vgcs_uplink_reject) {
@@ -159,7 +159,7 @@
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkReqConf(?, omit, '1234'O)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkReqConf(?, omit, '1234'O)) -> value rx_bssap {
log("VGCS: received uplink req confirm");
uplink_req_conf := true;
COORD.send(COORD_UPLINK_REQUEST_CONFIRM);
@@ -168,7 +168,7 @@
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkRelInd(GSM0808_CAUSE_CALL_CONTROL, omit)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkRelInd(GSM0808_CAUSE_CALL_CONTROL, omit)) -> value rx_bssap {
log("VGCS: received uplink rel ind");
uplink_rel_ind := true;
if (g_pars.asci_test.vgcs_talker_rel) {
@@ -176,7 +176,7 @@
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkRelInd(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, omit)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkRelInd(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, omit)) -> value rx_bssap {
log("VGCS: received uplink rel ind, caused by failure");
uplink_rel_ind_failure := true;
if (g_pars.asci_test.vgcs_talker_fail) {
@@ -184,7 +184,7 @@
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_UplinkRelInd(?, omit)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_UplinkRelInd(?, omit)) -> value rx_bssap {
setverdict(fail, "VGCS: received uplink rel ind, caused by failure with invalid cause: ", rx_bssap);
}
[] COORD.receive(COORD_VGCS_ASSIGN_RES) {
@@ -196,12 +196,12 @@
if (g_pars.asci_test.vgcs_uplink_seized or
g_pars.asci_test.vgcs_uplink_release) {
log("VGCS: sending Uplink Seized Cmd");
- BSSAP.send(ts_BSSMAP_UplinkSeizedCmd(9, omit, omit, omit));
+ RAN_CONN.send(ts_BSSMAP_UplinkSeizedCmd(9, omit, omit, omit));
T.start;
}
if (g_pars.asci_test.vgcs_uplink_release) {
log("VGCS: sending Uplink Release Cmd");
- BSSAP.send(ts_BSSMAP_UplinkRelCmd(9));
+ RAN_CONN.send(ts_BSSMAP_UplinkRelCmd(9));
T.start;
}
if (g_pars.asci_test.vgcs_uplink_seized or
@@ -235,9 +235,9 @@

/* After timeout: Release Channel and Call and see if the outcome of the test is as expected. */
COORD.send(COORD_VGCS_CHANNEL_REL);
- BSSAP.send(ts_BSSMAP_ClearCommand(0));
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);

if (g_pars.asci_test.vgcs_assign_ok) {
if (not assign_res) {
@@ -411,11 +411,11 @@
var template (value) PDU_BSSAP ass_req := f_gen_asci_ass_req(ch_type := req_ch_type, cell_id := req_cell_id,
group_call_ref := bit2oct(encvalue(callref)));
/* VGCS/VBS ASS REQ in SCCP CR (must be the first message) */
- BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ass_req));
- BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
+ RAN_CONN.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ass_req));
+ RAN_CONN.receive(tr_MSC_CONN_PRIM_CONF_IND);

alt {
- [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_AssignmentRes(res_ch_type, res_cell_id)) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_VGCS_VBS_AssignmentRes(res_ch_type, res_cell_id)) -> value rx_bssap {
log("VGCS: got assignment result on channel");
COORD.send(COORD_VGCS_ASSIGN_RES);
if (g_pars.asci_test.vgcs_talker_req or
@@ -449,14 +449,14 @@
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_AssignmentFail) -> value rx_bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_VGCS_VBS_AssignmentFail) -> value rx_bssap {
log("VGCS: got assignment failure on channel");
COORD.send(COORD_VGCS_ASSIGN_FAIL);
log("VGCS: got release order after assignment failure");
COORD.receive(COORD_VGCS_CHANNEL_REL);
- BSSAP.send(ts_BSSMAP_ClearCommand(0));
- BSSAP.receive(tr_BSSMAP_ClearComplete);
- BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
+ RAN_CONN.send(ts_BSSMAP_ClearCommand(0));
+ RAN_CONN.receive(tr_BSSMAP_ClearComplete);
+ RAN_CONN.send(ts_MSC_CONN_PRIM_DISC_REQ);
return;
}
[] COORD.receive(COORD_VGCS_CHANNEL_REL) {
diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn
index 30aef99..37b6198 100644
--- a/bsc/BSC_Tests_LCLS.ttcn
+++ b/bsc/BSC_Tests_LCLS.ttcn
@@ -111,18 +111,18 @@
var MgcpResponse mgcp_rsp;
var RSL_Message rsl_msg;
/* from ConnHdlr to master process */
- [] BSSAP.receive(PDU_BSSAP:?) -> value bssap { MASTER.send(bssap); }
- [] BSSAP.receive(RAN_Conn_Prim:?) -> value bssap_p { MASTER.send(bssap_p); }
- [] BSSAP.receive(PDU_DTAP_MO:?) -> value dtap_mo { MASTER.send(dtap_mo); }
- [] BSSAP.receive(PDU_DTAP_MT:?) -> value dtap_mt { MASTER.send(dtap_mt); }
+ [] RAN_CONN.receive(PDU_BSSAP:?) -> value bssap { MASTER.send(bssap); }
+ [] RAN_CONN.receive(RAN_Conn_Prim:?) -> value bssap_p { MASTER.send(bssap_p); }
+ [] RAN_CONN.receive(PDU_DTAP_MO:?) -> value dtap_mo { MASTER.send(dtap_mo); }
+ [] RAN_CONN.receive(PDU_DTAP_MT:?) -> value dtap_mt { MASTER.send(dtap_mt); }
[] MGCP.receive(MgcpCommand:?) -> value mgcp_cmd { MASTER.send(mgcp_cmd); }
[] MGCP.receive(MgcpResponse:?) -> value mgcp_rsp { MASTER.send(mgcp_rsp); }
[] RSL.receive(RSL_Message:?) -> value rsl_msg { MASTER.send(rsl_msg); }
/* from master process to ConnHdlr */
- [] MASTER.receive(PDU_BSSAP:?) -> value bssap { BSSAP.send(bssap); }
- [] MASTER.receive(RAN_Conn_Prim:?) -> value bssap_p { BSSAP.send(bssap_p); }
- [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { BSSAP.send(dtap_mo); }
- [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { BSSAP.send(dtap_mt); }
+ [] MASTER.receive(PDU_BSSAP:?) -> value bssap { RAN_CONN.send(bssap); }
+ [] MASTER.receive(RAN_Conn_Prim:?) -> value bssap_p { RAN_CONN.send(bssap_p); }
+ [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { RAN_CONN.send(dtap_mo); }
+ [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { RAN_CONN.send(dtap_mt); }
[] MASTER.receive(MgcpCommand:?) -> value mgcp_cmd { MGCP.send(mgcp_cmd); }
[] MASTER.receive(MgcpResponse:?) -> value mgcp_rsp { MGCP.send(mgcp_rsp); }
[] MASTER.receive(RSL_Message:?) -> value rsl_msg { RSL.send(rsl_msg); }
@@ -171,7 +171,7 @@
connect(vc_conn:RSL1, bts[1][0].rsl.vc_RSL:CLIENT_PT);
connect(vc_conn:RSL1_PROC, bts[1][0].rsl.vc_RSL:RSL_PROC);
}
- connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT);
+ connect(vc_conn:RAN_CONN, g_bssap[bssap_idx].vc_RAN:CLIENT);
connect(vc_conn:MGCP_PROC, vc_MGCP[mgwpool_idx]:MGCP_PROC);
connect(vc_conn:MGCP, vc_MGCP[mgwpool_idx]:MGCP_CLIENT);
}
diff --git a/bsc/BSC_Tests_VAMOS.ttcn b/bsc/BSC_Tests_VAMOS.ttcn
index 1dc4910..109738c 100644
--- a/bsc/BSC_Tests_VAMOS.ttcn
+++ b/bsc/BSC_Tests_VAMOS.ttcn
@@ -284,7 +284,7 @@

/* MS to NW */
RSL.send(ts_RSL_DATA_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3_data));
- BSSAP.receive(tr_BSSAP_DTAP) -> value rx_bssap_dtap;
+ RAN_CONN.receive(tr_BSSAP_DTAP) -> value rx_bssap_dtap;
if (not match(rx_bssap_dtap.pdu.dtap, l3_data)) {
setverdict(fail, "unexpected L3 data");
mtc.stop;
@@ -292,7 +292,7 @@

/* NW to MS */
l3_data := '0800dcba9876543210'O;
- BSSAP.send(ts_BSSAP_DTAP(l3_data, '00'O));
+ RAN_CONN.send(ts_BSSAP_DTAP(l3_data, '00'O));
RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, tr_RslLinkID_DCCH(0), l3_data));
}

diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index 88a1b58..3c6e1b0 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -906,8 +906,8 @@
/* wait for a COMPL_L3 from the BSC to ensure that the SCCP connection is up */
T.start(2.0);
alt {
- [] BSSAP.receive(exp_l3_compl);
- [] BSSAP.receive(tr_BSSMAP_ComplL3) {
+ [] RAN_CONN.receive(exp_l3_compl);
+ [] RAN_CONN.receive(tr_BSSMAP_ComplL3) {
setverdict(fail, "Received non-matching COMPLETE LAYER 3 INFORMATION");
Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
}
@@ -1042,9 +1042,9 @@
var RSL_Message rsl;

if (isvalue(enc.enc_kc128)) {
- BSSAP.send(ts_BSSMAP_CipherModeCmdKc128(enc.enc_alg_permitted, enc.enc_key, valueof(enc.enc_kc128)));
+ RAN_CONN.send(ts_BSSMAP_CipherModeCmdKc128(enc.enc_alg_permitted, enc.enc_key, valueof(enc.enc_kc128)));
} else {
- BSSAP.send(ts_BSSMAP_CipherModeCmd(enc.enc_alg_permitted, enc.enc_key));
+ RAN_CONN.send(ts_BSSMAP_CipherModeCmd(enc.enc_alg_permitted, enc.enc_key));
}

alt {
@@ -1060,7 +1060,7 @@
}
repeat;
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeCompl) -> value bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeCompl) -> value bssap {
if (exp_fail == true) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unexpected Cipher Mode Complete");
} else {
@@ -1071,7 +1071,7 @@
}
}
}
- [] BSSAP.receive(tr_BSSMAP_CipherModeRej) -> value bssap {
+ [] RAN_CONN.receive(tr_BSSMAP_CipherModeRej) -> value bssap {
if (exp_fail == false) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Ciphering Mode Reject");
} else {
@@ -1404,16 +1404,16 @@
resp.line.trans_id := cmd.line.trans_id;
timer T := 5.0;

- BSSAP.send(cmd);
+ RAN_CONN.send(cmd);
T.start;
alt {
[] as_Media_mgw();
- [] BSSAP.receive(resp) -> value resp_val { }
- [] BSSAP.receive(resp_any) {
+ [] RAN_CONN.receive(resp) -> value resp_val { }
+ [] RAN_CONN.receive(resp_any) {
setverdict(fail, "Response didn't match template");
mtc.stop;
}
- [] BSSAP.receive { repeat; }
+ [] RAN_CONN.receive { repeat; }
[] T.timeout {
setverdict(fail, "Timeout waiting for response to ", cmd);
mtc.stop;
@@ -1533,7 +1533,7 @@
f_rslem_dchan_queue_enable();

f_create_mgcp_expect(mgcpcrit);
- BSSAP.send(ass_cmd);
+ RAN_CONN.send(ass_cmd);

T.start;
alt {
@@ -1547,24 +1547,24 @@
[st.rtp_stream] as_Media();

/* if we receive exactly what we expected, always return + pass */
- [st.is_assignment and st.assignment_done or (not st.is_assignment and (st.modify_done or not exp_modify))] BSSAP.receive(exp_ass_cpl) -> value bssap {
+ [st.is_assignment and st.assignment_done or (not st.is_assignment and (st.modify_done or not exp_modify))] RAN_CONN.receive(exp_ass_cpl) -> value bssap {
setverdict(pass);
}
- [exp_fail] BSSAP.receive(exp_ass_cpl) -> value bssap {
+ [exp_fail] RAN_CONN.receive(exp_ass_cpl) -> value bssap {
setverdict(pass);
}
[(st.is_assignment and st.assignment_done or
(not st.is_assignment and (st.modify_done or not exp_modify))) and
- exp_compl] BSSAP.receive(tr_BSSMAP_AssignmentComplete) {
+ exp_compl] RAN_CONN.receive(tr_BSSMAP_AssignmentComplete) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching ASSIGNMENT COMPLETE");
}
- [exp_compl] BSSAP.receive(tr_BSSMAP_AssignmentFail) {
+ [exp_compl] RAN_CONN.receive(tr_BSSMAP_AssignmentFail) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received unexpected ASSIGNMENT FAIL");
}
- [not exp_compl] BSSAP.receive(tr_BSSMAP_AssignmentComplete) {
+ [not exp_compl] RAN_CONN.receive(tr_BSSMAP_AssignmentComplete) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received unexpected ASSIGNMENT COMPLETE");
}
- [not exp_compl] BSSAP.receive(tr_BSSMAP_AssignmentFail) {
+ [not exp_compl] RAN_CONN.receive(tr_BSSMAP_AssignmentFail) {
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching ASSIGNMENT FAIL");
}
[] T.timeout {
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 5462916..167bfa9 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..635e04f 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,8 +6085,8 @@
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),
- tla, ts_BSSMAP_IE_SpeechCodec({ts_CodecFR})));
+ 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,8 +6146,8 @@
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),
- tla, ts_BSSMAP_IE_SpeechCodec({ts_CodecFR})));
+ 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.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I75dc5b8b6db912b2eb69311612dbbb0a454374c3
Gerrit-Change-Number: 41488
Gerrit-PatchSet: 4
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>