aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2021-12-16 18:17:49 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2022-01-23 00:13:51 +0100
commit6289af1197126cb2bae27d5ae84743689f46268b (patch)
treef4ddd74e14a7985ee5873f55cab14cdf4b4785fd
parent189974920d6c39c5e215f815920fe71fe52f26e1 (diff)
bsc: f_perform_clear: ack all DLCX and RSL REL REQ
ACK any MGCP DLCX or RLL REL REQ during f_perform_clear(), which makes it more universally applicable to invoke at the end of a test. Related: OS#5337 Change-Id: Ie5b77c266a5d8f47edd187c474df281a799a81de
-rw-r--r--bsc/BSC_Tests.ttcn20
1 files changed, 20 insertions, 0 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index d68cba25..34d3d036 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -7791,9 +7791,27 @@ runs on MSC_ConnHdlr {
}
}
+private altstep as_mgcp_ack_all_dlcx() runs on MSC_ConnHdlr {
+ var MgcpCommand mgcp_cmd;
+ [] MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {
+ MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));
+ repeat;
+ }
+}
+
+private altstep as_rsl_ack_all_rel_req() runs on MSC_ConnHdlr {
+ var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
+ [] RSL.receive(tr_RSL_REL_REQ(g_chan_nr, ?)) {
+ RSL.send(ts_RSL_REL_CONF(g_chan_nr, main_dcch));
+ repeat;
+ }
+}
+
friend function f_perform_clear(RSL_DCHAN_PT rsl_pt := RSL, RSLEM_PROC_PT rsl_proc_pt := RSL_PROC,
template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE)
runs on MSC_ConnHdlr {
+ 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));
interleave {
@@ -7814,6 +7832,8 @@ runs on MSC_ConnHdlr {
f_rslem_unregister(0, g_chan_nr, PT := rsl_proc_pt);
}
}
+ deactivate(ack_dlcx);
+ deactivate(ack_rel_req);
}
private function f_perform_compl_l3(RSL_DCHAN_PT rsl_pt, RSLEM_PROC_PT rsl_proc_pt,