bsc: add RSL port args in MSC_ConnHdlr, RSLEM
Add explicit RSL_DCHAN_PT and RSLEM_PROC_PT args to functions and
altsteps related to channel establishment and assignment. This allows
establishing and assigning a channel on cells other than bts 0.
This is required for upcoming BSC_Tests.TC_cm_reestablishment().
Related: SYS#5130
Change-Id: Ic3206b7125ee22bf98330080d9b136cefe7da03f
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index f64329a..969dbce 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -109,7 +109,7 @@
* Client Component for a single dedicated channel
***********************************************************************/
-private function f_rx_or_fail(template RSL_Message exp_rx) runs on RSL_DchanHdlr return RSL_Message
+private function f_rx_or_fail(template RSL_Message exp_rx, RSL_DCHAN_PT rsl_pt := RSL) runs on RSL_DchanHdlr return RSL_Message
{
var RSL_Message rx_rsl;
timer T := 10.0;
@@ -117,11 +117,11 @@
/* request a channel to be established */
T.start;
alt {
- [] RSL.receive(exp_rx) -> value rx_rsl {
+ [] rsl_pt.receive(exp_rx) -> value rx_rsl {
T.stop;
return rx_rsl;
}
- [] RSL.receive {
+ [] rsl_pt.receive {
setverdict(fail, "Unexpected RSL message on DCHAN");
mtc.stop;
}
@@ -136,16 +136,16 @@
/* establish a dedicated channel using 'ra' */
function f_chan_est(OCT1 ra, octetstring est_l3, template RslLinkId link_id, GsmFrameNumber fn := 23,
- template uint3_t tsc := ?)
+ template uint3_t tsc := ?, RSL_DCHAN_PT rsl_pt := RSL, RSLEM_PROC_PT rsl_proc_pt := RSL_PROC)
runs on RSL_DchanHdlr {
var RSL_Message rx_rsl;
var GsmRrMessage rr;
/* request a channel to be established */
- RSL.send(ts_RSLDC_ChanRqd(ra, fn));
+ rsl_pt.send(ts_RSLDC_ChanRqd(ra, fn));
/* At this point the BSC sends a CHAN ACTIV which we always ACK. Checking it below. */
/* expect immediate assignment */
- rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN);
+ rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN, rsl_pt := rsl_pt);
rr := dec_GsmRrMessage(rx_rsl.ies[1].body.full_imm_ass_info.payload);
if (not match(rr.payload.imm_ass.chan_desc.tsc, tsc)) {
setverdict(fail, "Immediate Assignment: unexpected TSC in Channel Description: expected ", tsc, " got ",
@@ -153,10 +153,10 @@
mtc.stop;
}
g_chan_nr := rr.payload.imm_ass.chan_desc.chan_nr;
- RSL.send(ts_RSL_EST_IND(g_chan_nr, valueof(link_id), est_l3));
+ rsl_pt.send(ts_RSL_EST_IND(g_chan_nr, valueof(link_id), est_l3));
/* Check above CHAN ACTIV */
- var RSL_Message chan_act := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr);
+ var RSL_Message chan_act := f_rslem_get_last_act(rsl_proc_pt, 0, g_chan_nr);
var RSL_IE_Body ie;
if (f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, ie)) {
var uint3_t got_tsc := ie.chan_ident.ch_desc.v.tsc;