<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: Update and add tests checking Last Used EUTRAN PLMN Id<br><br>CSFB indicator shouldn't be used as stated in the specs. Rather, BSC<br>should act based on "Last Used E-UTRAN PLMN Id" found in messages such<br>as Common Id, or Handover Request/Required.<br><br>Related: SYS#5337<br>Related: osmo-bsc.git Change-Id I5d290ac55eca5adde1c33396422f4c10b83c03d5<br>Change-Id: I7b2e5a3ad24c10e279a7f1c447804100168203ba<br>---<br>M bsc/BSC_Tests.ttcn<br>1 file changed, 62 insertions(+), 7 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/68/23768/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 6170e48..f062274 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -1747,7 +1747,6 @@</span><br><span>                        boolean expect_rr_chan_rel := true,</span><br><span>                          boolean expect_rll_rel_req := true,</span><br><span>                          boolean handle_rll_rel := true,</span><br><span style="color: hsl(0, 100%, 40%);">-                         boolean is_csfb := false,</span><br><span>                            template CellSelIndValue expect_cells := omit,</span><br><span>                       template RR_Cause expect_rr_cause := ?</span><br><span>                       ) runs on test_CT {</span><br><span>@@ -1767,7 +1766,7 @@</span><br><span>               got_deact_sacch := true;</span><br><span>             repeat;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud {</span><br><span style="color: hsl(120, 100%, 40%);">+  [not istemplatekind(expect_cells, "omit")] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CellSelectInd))) -> value ud {</span><br><span>              got_rr_chan_rel := true;</span><br><span> </span><br><span>                 if (f_rsl_find_ie(ud.rsl, RSL_IE_L3_INFO, l3_ie) == false) {</span><br><span>@@ -1801,7 +1800,7 @@</span><br><span>                 }</span><br><span>            repeat;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       [not is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) -> value ud {</span><br><span style="color: hsl(120, 100%, 40%);">+    [istemplatekind(expect_cells, "omit")] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) -> value ud {</span><br><span>                got_rr_chan_rel := true;</span><br><span> </span><br><span>                 if (not istemplatekind(expect_rr_cause, "omit")) {</span><br><span>@@ -1877,7 +1876,62 @@</span><br><span>        f_shutdown_helper();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Test behavior of channel release after Clear Command with CSFB indicator from MSC */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_chan_rel_last_eutran_plmn_hard_clear(boolean tx_csfb_ind) runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       var BSSAP_N_DATA_ind rx_di;</span><br><span style="color: hsl(120, 100%, 40%);">+   var DchanTuple dt;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init(1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  dt := f_est_dchan('23'O, 23, '00010203040506'O);</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Send CommonID with some random PLMN (BSC doesn't take it into account</span><br><span style="color: hsl(120, 100%, 40%);">+  /* yet when generating the EUTRAN neigh list in RR CHannel Release) */</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_CommonId('001019876543210'H, '323454'O)));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Instruct BSC to clear channel */</span><br><span style="color: hsl(120, 100%, 40%);">+   var BssmapCause cause := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   if (tx_csfb_ind) {</span><br><span style="color: hsl(120, 100%, 40%);">+            BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommandCSFB(cause)));</span><br><span style="color: hsl(120, 100%, 40%);">+    } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause)));</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%);">+   /* expect Clear Complete from BSC on A */</span><br><span style="color: hsl(120, 100%, 40%);">+     BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          /* release the SCCP connection */</span><br><span style="color: hsl(120, 100%, 40%);">+             BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));</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%);">+   /* 1 neighbor is added by default in osmo-bts.cfg and</span><br><span style="color: hsl(120, 100%, 40%);">+    SystemInformationConfig_default, use that: */</span><br><span style="color: hsl(120, 100%, 40%);">+      var template CellSelIndValue exp_cells := f_tr_rr_chan_rel_earfcns(1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_cells := exp_cells);</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%);">+/* Test behavior of RR Channel rRelease after Clear Command without CSFB indicator</span><br><span style="color: hsl(120, 100%, 40%);">+   from MSC, previously receiving any CommonID containing the "Last Used E-UTRAN</span><br><span style="color: hsl(120, 100%, 40%);">+   PLMN Id". According to spec (3GPP TS 48.008 sec 3.1.30) that's the bit requesting</span><br><span style="color: hsl(120, 100%, 40%);">+   EUTRAN neighbor list sent later on by BSC in RR Channel, so receiving CSFB</span><br><span style="color: hsl(120, 100%, 40%);">+   Indicator or not shouldn't matter at all. */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_chan_rel_last_eutran_plmn_hard_clear_no_csfb() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_TC_chan_rel_last_eutran_plmn_hard_clear(false);</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%);">+/* Test behavior of RR Channel rRelease after Clear Command with CSFB indicator from</span><br><span style="color: hsl(120, 100%, 40%);">+   MSC, previously receiving any CommonID containing the "Last Used E-UTRAN PLMN</span><br><span style="color: hsl(120, 100%, 40%);">+   Id". According to spec (3GPP TS 48.008 sec 3.1.30) that's the bit requesting</span><br><span style="color: hsl(120, 100%, 40%);">+   EUTRAN neighbor list sent later on by BSC in RR Channel. */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_chan_rel_last_eutran_plmn_hard_clear_csfb() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      f_TC_chan_rel_last_eutran_plmn_hard_clear(true);</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%);">+/* Test behavior of RR Channel Release after Clear Command with CSFB indicator from</span><br><span style="color: hsl(120, 100%, 40%);">+   MSC, without receiving any CommonID containing the "Last Used E-UTRAN PLMN</span><br><span style="color: hsl(120, 100%, 40%);">+   Id". According to spec (TS 48.008 version 16.0.0 Release 16 "3.2.1.21") the</span><br><span style="color: hsl(120, 100%, 40%);">+   CSFB Indicator should not be used anymore, and hence, there should be no</span><br><span style="color: hsl(120, 100%, 40%);">+   EUTRAN neighbor list sent by BSC in RR Channel release since no CommonId with</span><br><span style="color: hsl(120, 100%, 40%);">+   Last Used E-UTRAN PLMN Id" IE was sent for this conn. */</span><br><span> testcase TC_chan_rel_hard_clear_csfb() runs on test_CT {</span><br><span>   var BSSAP_N_DATA_ind rx_di;</span><br><span>  var DchanTuple dt;</span><br><span>@@ -1896,7 +1950,7 @@</span><br><span>           BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false);</span><br><span>   f_shutdown_helper();</span><br><span> }</span><br><span> </span><br><span>@@ -2322,8 +2376,7 @@</span><br><span>                        BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));</span><br><span>           }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true,</span><br><span style="color: hsl(0, 100%, 40%);">-                                expect_cells := expect_cells);</span><br><span style="color: hsl(120, 100%, 40%);">+              f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_cells := expect_cells);</span><br><span>     }</span><br><span> </span><br><span>        for (var integer i := 1; i < total_earfcns; i := i + 1) {</span><br><span>@@ -8453,6 +8506,8 @@</span><br><span>         execute( TC_chan_rel_rll_rel_ind() );</span><br><span>        execute( TC_chan_rel_conn_fail() );</span><br><span>  execute( TC_chan_rel_hard_clear() );</span><br><span style="color: hsl(120, 100%, 40%);">+  execute( TC_chan_rel_last_eutran_plmn_hard_clear_no_csfb() );</span><br><span style="color: hsl(120, 100%, 40%);">+ execute( TC_chan_rel_last_eutran_plmn_hard_clear_csfb() );</span><br><span>   execute( TC_chan_rel_hard_clear_csfb() );</span><br><span>    execute( TC_chan_rel_hard_rlsd() );</span><br><span>  execute( TC_chan_rel_hard_rlsd_ms_dead() );</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23768">change 23768</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/+/23768"/><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: I7b2e5a3ad24c10e279a7f1c447804100168203ba </div>
<div style="display:none"> Gerrit-Change-Number: 23768 </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>