laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19794 )

Change subject: BSC_Tests: test emergency call preemption
......................................................................

BSC_Tests: test emergency call preemption

Fill all channels of the BTS and then try to do a channel request for an
emergency call. Osmo-bsc should pick one of the TCH channels and release
it so that there is room for the emergency call.

Change-Id: I7d544680f492cb825d909b86b2e1131ab652df13
Related: OS#4549
---
M bsc/BSC_Tests.ttcn
1 file changed, 44 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 0e76476..61b700c 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -6285,6 +6285,48 @@
        vc_conn.done;
 }

+/* Test what happens when an emergency call arrives while all TCH channels are
+ * busy, the BSC is expected to terminate one call in favor of the incoming
+ * emergency call */
+testcase TC_emerg_premption() runs on test_CT {
+       var ASP_RSL_Unitdata rsl_ud;
+       var integer i;
+       var integer chreq_total, chreq_nochan;
+       var RSL_Message rx_rsl;
+       var RslChannelNr chan_nr;
+
+       f_init(1);
+       f_sleep(1.0);
+
+       f_vty_allow_emerg_msc(true);
+       f_vty_allow_emerg_bts(true, 0);
+
+       /* Fill up all channels on the BTS */
+       chreq_total := f_ctrl_get_ratectr_abs(IPA_CTRL, "bts", 0, 
"chreq:total");
+       chreq_nochan := f_ctrl_get_ratectr_abs(IPA_CTRL, "bts", 0, 
"chreq:no_channel");
+       for (i := 0; i < NUM_TCHF_PER_BTS + NUM_TCHH_PER_BTS + 
NUM_SDCCH_PER_BTS; i := i+1) {
+               chan_nr := f_chreq_act_ack('33'O, i);
+       }
+       IPA_RSL[0].clear;
+       f_ctrl_get_exp_ratectr_abs(IPA_CTRL, "bts", 0, "chreq:total",
+                                  chreq_total + NUM_TCHF_PER_BTS + 
NUM_TCHH_PER_BTS + NUM_SDCCH_PER_BTS);
+
+       /* Send Channel request for emegergency call */
+       f_ipa_tx(0, ts_RSL_CHAN_RQD('A5'O, 23));
+
+       /* Expect the BSC to release one (the first) TCH/F on the BTS */
+       chan_nr := valueof(t_RslChanNr_Bm(1));
+       f_expect_chan_rel(0, chan_nr, expect_rr_chan_rel := false, 
expect_rll_rel_req := false);
+
+       /* Expect the BSC to send activate/assign the a channel for the 
emergency call */
+       rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
+       chan_nr := rx_rsl.ies[0].body.chan_nr;
+       f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 33));
+       rx_rsl := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));
+
+       setverdict(pass);
+}
+
 /* Dyn PDCH todo:
    * activate OSMO as TCH/F
    * activate OSMO as TCH/H
@@ -6506,6 +6548,8 @@
        execute( TC_assignment_emerg_setup_allow() );
        execute( TC_assignment_emerg_setup_deny_msc() );
        execute( TC_assignment_emerg_setup_deny_bts() );
+       execute( TC_emerg_premption() );
+
 }

 }

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19794
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I7d544680f492cb825d909b86b2e1131ab652df13
Gerrit-Change-Number: 19794
Gerrit-PatchSet: 2
Gerrit-Owner: dexter <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-MessageType: merged

Reply via email to