<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19359">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: Introduce test TC_si_acc_rotate<br><br>Related: SYS#4911<br>Change-Id: I18d0243353fce547d126d62c34415628a21cb52b<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/59/19359/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 cc7346f..338dbce 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -1854,6 +1854,82 @@</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private function f_acc09_count_allowed(AccessControlClass acc) runs on test_CT return uint8_t</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  var uint8_t count := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       for (var integer i := 5; i < 16; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (acc[i] == '0'B) { /* the list marks barred, we count allowed */</span><br><span style="color: hsl(120, 100%, 40%);">+                   count := count + 1;</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%);">+     return count;</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%);">+/* verify ACC rotate feature */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_si_acc_rotate() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    var template SystemInformationConfig sic := SystemInformationConfig_default;</span><br><span style="color: hsl(120, 100%, 40%);">+  var SystemInformationConfig last_si;</span><br><span style="color: hsl(120, 100%, 40%);">+  var AccessControlClass acc;</span><br><span style="color: hsl(120, 100%, 40%);">+   var ASP_RSL_Unitdata rx_rsl_ud;</span><br><span style="color: hsl(120, 100%, 40%);">+       var uint8_t count;</span><br><span style="color: hsl(120, 100%, 40%);">+    var integer times_allowed[10] := { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init(0, guard_timeout := 60.0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   f_bts_0_cfg(BSCVTY, {"rach access-control-class 5 barred", "access-control-rotate 3", "access-control-rotate-quantum 1"});</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Init and get first sysinfo */</span><br><span style="color: hsl(120, 100%, 40%);">+      f_init_bts_and_check_sysinfo(0, expect_si := ?);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    var integer i := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+   while (i < 20) {</span><br><span style="color: hsl(120, 100%, 40%);">+           alt {</span><br><span style="color: hsl(120, 100%, 40%);">+         [] IPA_RSL[0].receive(tr_ASP_RSL_UD((tr_RSL_NO_BCCH_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  tr_RSL_BCCH_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     tr_RSL_NO_SACCH_FILL,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 tr_RSL_SACCH_FILL))) -> value rx_rsl_ud {</span><br><span style="color: hsl(120, 100%, 40%);">+                     f_sysinfo_seen(0, rx_rsl_ud.rsl);</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%);">+           last_si := g_system_information[0];</span><br><span style="color: hsl(120, 100%, 40%);">+           if (last_si.si1 == omit) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    continue;</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%);">+           g_system_information[0].si1 := omit;</span><br><span style="color: hsl(120, 100%, 40%);">+          acc := last_si.si1.rach_control.acc;</span><br><span style="color: hsl(120, 100%, 40%);">+          count := f_acc09_count_allowed(acc);</span><br><span style="color: hsl(120, 100%, 40%);">+          log("RSL: GOT SI1 ACC len=", count, ": ", acc);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         if (count != 3) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     log("RSL: EXPECTED SI ACC len=3");</span><br><span style="color: hsl(120, 100%, 40%);">+                  setverdict(fail, "received SI does not match expectations");</span><br><span style="color: hsl(120, 100%, 40%);">+                        break;</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%);">+           for (var integer j := 0; j < 10; j := j + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (acc[16 - 1 - j] == '0'B) { /* the list marks barred, we count allowed */</span><br><span style="color: hsl(120, 100%, 40%);">+                          times_allowed[j] := times_allowed[j] + 1;</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%);">+           i := i + 1;</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%);">+   for (var integer j := 0; j < 10; j := j + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+             log("ACC", j, " allowed ", times_allowed[j], " times" );</span><br><span style="color: hsl(120, 100%, 40%);">+                if (j != 5 and times_allowed[j] < 3) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     log("ACC", j, " ERROR: allowed ", times_allowed[j], " < 1 times" );</span><br><span style="color: hsl(120, 100%, 40%);">+                  setverdict(fail);</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (j == 5 and times_allowed[j] > 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      log("ACC", j, " ERROR: allowed ", times_allowed[j], " > 0 times" );</span><br><span style="color: hsl(120, 100%, 40%);">+                  setverdict(fail);</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%);">+   f_bts_0_cfg(BSCVTY, {"access-control-rotate 10", "rach access-control-class 5 allowed"});</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> testcase TC_ctrl_msc_connection_status() runs on test_CT {</span><br><span>   var charstring ctrl_resp;</span><br><span>@@ -5829,6 +5905,7 @@</span><br><span>    execute( TC_si2quater_42_earfcns() );</span><br><span>        execute( TC_si2quater_48_earfcns() );</span><br><span>        execute( TC_si2quater_49_earfcns() );</span><br><span style="color: hsl(120, 100%, 40%);">+ execute( TC_si_acc_rotate() );</span><br><span> </span><br><span>   /* RSL DCHAN Channel ACtivation / Deactivation */</span><br><span>    execute( TC_chan_act_noreply() );</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19359">change 19359</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/+/19359"/><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: I18d0243353fce547d126d62c34415628a21cb52b </div>
<div style="display:none"> Gerrit-Change-Number: 19359 </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>