<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25009">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: Test tch allocation if sdcch exhausted<br><br>Related: SYS#5548<br>Change-Id: I0c958de10a3643f8b94479d676dd1ac1b9140802<br>---<br>M bsc/BSC_Tests.ttcn<br>1 file changed, 77 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/09/25009/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn</span><br><span>index ae805e3..23f3164 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -4517,6 +4517,68 @@</span><br><span> f_shutdown_helper();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* request a signalling channel with all SDCCH exhausted, it is expected that a TCH will be selected */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_TC_assignment_sdcch_exhausted_req_signalling(charstring id) runs on MSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+ g_pars := f_gen_test_hdlr_pars();</span><br><span style="color: hsl(120, 100%, 40%);">+ g_pars.ra := '02'O; /* RA containing reason=LU*/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span style="color: hsl(120, 100%, 40%);">+ var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));</span><br><span style="color: hsl(120, 100%, 40%);">+ var octetstring l3_enc := enc_PDU_ML3_MS_NW(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+ var template uint3_t tsc := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ f_MscConnHdlr_init(g_pars.media_nr, host_bts, host_mgw_mgcp, FR_AMR);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ //RSL.send(ts_RSLDC_ChanRqd(g_pars.ra, 32));</span><br><span style="color: hsl(120, 100%, 40%);">+ f_create_bssmap_exp(l3_enc);</span><br><span style="color: hsl(120, 100%, 40%);">+ /* call helper function for CHAN_RQD -> IMM ASS ->EST_IND */</span><br><span style="color: hsl(120, 100%, 40%);">+ RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn, tsc);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* we should now have a COMPL_L3 at the MSC */</span><br><span style="color: hsl(120, 100%, 40%);">+ timer T := 10.0;</span><br><span style="color: hsl(120, 100%, 40%);">+ T.start;</span><br><span style="color: hsl(120, 100%, 40%);">+ alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] BSSAP.receive(tr_BSSMAP_ComplL3);</span><br><span style="color: hsl(120, 100%, 40%);">+ [] T.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION");</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_assignment_sdcch_exhausted_req_signalling() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var MSC_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init(1, true);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_sleep(1.0);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_disable_all_sdcch();</span><br><span style="color: hsl(120, 100%, 40%);">+ vc_conn := f_start_handler(refers(f_TC_assignment_sdcch_exhausted_req_signalling));</span><br><span style="color: hsl(120, 100%, 40%);">+ vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_enable_all_sdcch();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown_helper();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Request a signalling channel with all SDCCH exhausted, it is</span><br><span style="color: hsl(120, 100%, 40%);">+ expected that no TCH will be selected for signalling and assigment will fail</span><br><span style="color: hsl(120, 100%, 40%);">+ because it's dictated by VTY config */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_assignment_sdcch_exhausted_req_signalling_tch_forbiden() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ var RSL_Message rsl_unused, rsl_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+ var GsmRrMessage rr;</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init(1, false);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_sleep(1.0);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_allow_tch_for_signalling(false, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_disable_all_sdcch();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* RA containing reason=LU*/</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ipa_tx(0, ts_RSL_CHAN_RQD('02'O, 2342));</span><br><span style="color: hsl(120, 100%, 40%);">+ rsl_msg := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));</span><br><span style="color: hsl(120, 100%, 40%);">+ rr := dec_GsmRrMessage(rsl_msg.ies[1].body.full_imm_ass_info.payload);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (rr.header.message_type != IMMEDIATE_ASSIGNMENT_REJECT) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "Expected reject");</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_allow_tch_for_signalling(true, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_enable_all_sdcch();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown_helper();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> testcase TC_assignment_osmux() runs on test_CT {</span><br><span> var TestHdlrParams pars := f_gen_test_hdlr_pars();</span><br><span> var MSC_ConnHdlr vc_conn;</span><br><span>@@ -7828,6 +7890,19 @@</span><br><span> f_vty_transceive(BSCVTY, "exit");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Allow/Forbid TCH for signalling if SDCCH exhausted on a given BTS via VTY */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_vty_allow_tch_for_signalling(boolean allow, integer bts_nr) runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_enter_cfg_bts(BSCVTY, bts_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (allow) {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_transceive(BSCVTY, "channel allocator allow-tch-for-signalling 1");</span><br><span style="color: hsl(120, 100%, 40%);">+ } else {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_transceive(BSCVTY, "channel allocator allow-tch-for-signalling 0");</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_transceive(BSCVTY, "exit");</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_transceive(BSCVTY, "exit");</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_transceive(BSCVTY, "exit");</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Begin assignmet procedure and send an EMERGENCY SETUP (RR) */</span><br><span> private function f_assignment_emerg_setup() runs on MSC_ConnHdlr {</span><br><span> var PDU_ML3_MS_NW emerg_setup;</span><br><span>@@ -9407,6 +9482,8 @@</span><br><span> execute( TC_assignment_codec_hr_exhausted_req_fr_hr() );</span><br><span> execute( TC_assignment_codec_req_hr_fr() );</span><br><span> execute( TC_assignment_codec_req_fr_hr() );</span><br><span style="color: hsl(120, 100%, 40%);">+ execute( TC_assignment_sdcch_exhausted_req_signalling() );</span><br><span style="color: hsl(120, 100%, 40%);">+ execute( TC_assignment_sdcch_exhausted_req_signalling_tch_forbiden() );</span><br><span> </span><br><span> execute( TC_assignment_osmux() );</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25009">change 25009</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25009"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I0c958de10a3643f8b94479d676dd1ac1b9140802 </div>
<div style="display:none"> Gerrit-Change-Number: 25009 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>