<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>