<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19134">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BTS_Tests: cosmetic: mark private types / functions as such<br><br>Change-Id: I99ccf398130c7e5c2aac1932ebb83f158fed281d<br>---<br>M bts/BTS_Tests.ttcn<br>1 file changed, 93 insertions(+), 63 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn</span><br><span>index 1b6c9b2..a42f628 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -187,7 +187,7 @@</span><br><span>        port PCUIF_CODEC_PT PCU;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_init_rsl(charstring id) runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_init_rsl(charstring id) runs on test_CT {</span><br><span>  var bitstring trx_mask := '00000000'B;</span><br><span>       var integer trx_count := 0;</span><br><span>  var RSLEm_Event ev;</span><br><span>@@ -250,11 +250,11 @@</span><br><span> }</span><br><span> </span><br><span> /* Test-specific parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-type union TestSpecUnion {</span><br><span style="color: hsl(120, 100%, 40%);">+private type union TestSpecUnion {</span><br><span>         RllTestCase rll</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) RachControlParameters ts_RachCtrl_default := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) RachControlParameters ts_RachCtrl_default := {</span><br><span>     max_retrans := RACH_MAX_RETRANS_7,</span><br><span>   tx_integer := '1001'B, /* 12 slots */</span><br><span>        cell_barr_access := false,</span><br><span>@@ -262,7 +262,7 @@</span><br><span>     acc := '0000010000000000'B</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) CellSelectionParameters ts_CellSelPar_default := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) CellSelectionParameters ts_CellSelPar_default := {</span><br><span>         cell_resel_hyst_2dB := 2,</span><br><span>    ms_txpwr_max_cch := mp_ms_power_level_exp,</span><br><span>   acs := '0'B,</span><br><span>@@ -270,7 +270,7 @@</span><br><span>   rxlev_access_min := 0</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) LocationAreaIdentification ts_LAI_default := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) LocationAreaIdentification ts_LAI_default := {</span><br><span>       mcc_mnc := '262F42'H,</span><br><span>        lac := 42</span><br><span> }</span><br><span>@@ -297,7 +297,7 @@</span><br><span> }</span><br><span> </span><br><span> /* Default SYSTEM INFORMATION 3 */</span><br><span style="color: hsl(0, 100%, 40%);">-template (value) SystemInformation ts_SI3_default := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) SystemInformation ts_SI3_default := {</span><br><span>    header := ts_RrHeader(SYSTEM_INFORMATION_TYPE_3, 18),</span><br><span>        payload := {</span><br><span>                 si3 := {</span><br><span>@@ -327,7 +327,7 @@</span><br><span>       }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) SystemInformation ts_SI2_default := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) SystemInformation ts_SI2_default := {</span><br><span>     header := ts_RrHeader(SYSTEM_INFORMATION_TYPE_2, 22),</span><br><span>        payload := {</span><br><span>                 si2 := {</span><br><span>@@ -338,7 +338,7 @@</span><br><span>       }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) SystemInformation ts_SI4_default := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) SystemInformation ts_SI4_default := {</span><br><span>     header := ts_RrHeader(SYSTEM_INFORMATION_TYPE_4, 12), /* no CBCH / restoct */</span><br><span>        payload := {</span><br><span>                 si4 := {</span><br><span>@@ -352,13 +352,13 @@</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_rsl_bcch_fill_raw(RSL_IE_SysinfoType rsl_si_type, octetstring si_enc)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_rsl_bcch_fill_raw(RSL_IE_SysinfoType rsl_si_type, octetstring si_enc)</span><br><span> runs on test_CT {</span><br><span>    log("Setting ", rsl_si_type, ": ", si_enc);</span><br><span>      RSL_CCHAN.send(ts_ASP_RSL_UD(ts_RSL_BCCH_INFO(rsl_si_type, si_enc)));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_rsl_bcch_fill(RSL_IE_SysinfoType rsl_si_type, template (value) SystemInformation si_dec)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_rsl_bcch_fill(RSL_IE_SysinfoType rsl_si_type, template (value) SystemInformation si_dec)</span><br><span> runs on test_CT {</span><br><span>  var octetstring si_enc := enc_SystemInformation(valueof(si_dec));</span><br><span>    log("Setting ", rsl_si_type, ": ", si_dec);</span><br><span>@@ -508,7 +508,7 @@</span><br><span>        f_connect_reset(L1CTL);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type function void_fn(charstring id) runs on ConnHdlr;</span><br><span style="color: hsl(120, 100%, 40%);">+private type function void_fn(charstring id) runs on ConnHdlr;</span><br><span> </span><br><span> /* create a new test component */</span><br><span> function f_start_handler(void_fn fn, ConnHdlrPars pars,</span><br><span>@@ -581,8 +581,8 @@</span><br><span>     fn.apply(id);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_rsl_transceive_ret(template RSL_Message tx, template RSL_Message exp_rx, charstring id,</span><br><span style="color: hsl(0, 100%, 40%);">-                                boolean ignore_other := false)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_rsl_transceive_ret(template RSL_Message tx, template RSL_Message exp_rx,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 charstring id, boolean ignore_other := false)</span><br><span> runs on ConnHdlr return RSL_Message {</span><br><span>         var RSL_Message rx;</span><br><span>  timer T := 3.0;</span><br><span>@@ -1644,7 +1644,7 @@</span><br><span>  * Measurement Processing / Reporting</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmAddressField ts_LapdmAddr(LapdmSapi sapi, boolean c_r) := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template LapdmAddressField ts_LapdmAddr(LapdmSapi sapi, boolean c_r) := {</span><br><span>        spare := '0'B,</span><br><span>       lpd := 0,</span><br><span>    sapi := sapi,</span><br><span>@@ -1652,7 +1652,7 @@</span><br><span>        ea := true</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template LapdmFrameAB ts_LAPDm_AB(LapdmSapi sapi, boolean c_r, boolean p, octetstring pl) := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template LapdmFrameAB ts_LAPDm_AB(LapdmSapi sapi, boolean c_r, boolean p, octetstring pl) := {</span><br><span>    addr := ts_LapdmAddr(sapi, c_r),</span><br><span>     ctrl := ts_LapdmCtrlUI(p),</span><br><span>   len := 0, /* overwritten */</span><br><span>@@ -1662,7 +1662,7 @@</span><br><span> }</span><br><span> </span><br><span> /* handle incoming downlink SACCH and respond with uplink SACCH (meas res) */</span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_l1_sacch() runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_l1_sacch() runs on ConnHdlr {</span><br><span>      var L1ctlDlMessage l1_dl;</span><br><span>    [] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) -> value l1_dl {</span><br><span>            log("SACCH received: ", l1_dl.payload.data_ind.payload);</span><br><span>@@ -1683,7 +1683,7 @@</span><br><span>           }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_l1_dcch() runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_l1_dcch() runs on ConnHdlr {</span><br><span>   var L1ctlDlMessage l1_dl;</span><br><span>    [] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_DCCH(?))) -> value l1_dl {</span><br><span>             log("DCCH received: ", l1_dl.payload.data_ind.payload);</span><br><span>@@ -1694,17 +1694,17 @@</span><br><span>          }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record MeasElem {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record MeasElem {</span><br><span>     uint6_t rxlev,</span><br><span>       uint3_t rxqual</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record MeasElemFS {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record MeasElemFS {</span><br><span>    MeasElem full,</span><br><span>       MeasElem sub</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record ConnL1Pars {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record ConnL1Pars {</span><br><span>      boolean dtx_enabled,</span><br><span>         boolean toa256_enabled,</span><br><span>      MeasElemFS meas_ul,</span><br><span>@@ -1834,7 +1834,7 @@</span><br><span> }</span><br><span> </span><br><span> /* verify we regularly receive measurement reports with incrementing numbers */</span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_meas_res(boolean verify_meas := true) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_meas_res(boolean verify_meas := true) runs on ConnHdlr {</span><br><span>      var RSL_Message rsl;</span><br><span>         var boolean chan_est := false;</span><br><span> </span><br><span>@@ -2268,7 +2268,7 @@</span><br><span>   Misc_Helpers.f_shutdown(__BFILE__, __LINE__);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_check_meas_bs_power_level(integer level) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_check_meas_bs_power_level(integer level) runs on ConnHdlr {</span><br><span>         timer T := 8.0;</span><br><span>      T.start;</span><br><span>     var RSL_Message rsl;</span><br><span>@@ -2658,7 +2658,7 @@</span><br><span> </span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_wait_for_l1_power_level(integer level) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_wait_for_l1_power_level(integer level) runs on ConnHdlr {</span><br><span>  var L1ctlDlMessage l1_dl;</span><br><span>    timer T0 := 10.0;</span><br><span>    T0.start;</span><br><span>@@ -2712,7 +2712,7 @@</span><br><span> }</span><br><span> </span><br><span> type charstring BtsBand ("GSM450","GSM480","GSM750","GSM810","GSM850","GSM900","DCS1800","PCS1900");</span><br><span style="color: hsl(0, 100%, 40%);">-template charstring BtsBand_allGSM:= pattern "GSM???";</span><br><span style="color: hsl(120, 100%, 40%);">+private template charstring BtsBand_allGSM := pattern "GSM???";</span><br><span> private function f_power_from_band(in BtsBand band, out IntegerRecord min_dbm_level, out IntegerRecord max_dbm_level) return IntegerRecord {</span><br><span>        // 45.005 4.1.1</span><br><span>      var IntegerRecord gsm_power :={31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19,</span><br><span>@@ -3099,7 +3099,7 @@</span><br><span>  * Paging</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function tmsi_is_dummy(TMSIP_TMSI_V tmsi) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function tmsi_is_dummy(TMSIP_TMSI_V tmsi) return boolean {</span><br><span>       if (tmsi == 'FFFFFFFF'O) {</span><br><span>           return true;</span><br><span>         } else {</span><br><span>@@ -3107,16 +3107,16 @@</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record allowedFn { integer frame_nr }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_0  := { frame_nr := (6, 12, 16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_1  := { frame_nr := (12, 16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_2  := { frame_nr := (16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_3  := { frame_nr := (22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_4  := { frame_nr := (26, 32, 36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_5  := { frame_nr := (32, 36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_6  := { frame_nr := (36, 42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-template allowedFn bs_ag_blks_res_7  := { frame_nr := (42, 46) }</span><br><span style="color: hsl(0, 100%, 40%);">-function check_pch_fn(integer frame_nr, integer bs_ag_blks_res) runs on test_CT</span><br><span style="color: hsl(120, 100%, 40%);">+private type record allowedFn { integer frame_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_0  := { frame_nr := (6, 12, 16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_1  := { frame_nr := (12, 16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_2  := { frame_nr := (16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_3  := { frame_nr := (22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_4  := { frame_nr := (26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_5  := { frame_nr := (32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_6  := { frame_nr := (36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private template allowedFn bs_ag_blks_res_7  := { frame_nr := (42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+private function check_pch_fn(integer frame_nr, integer bs_ag_blks_res) runs on test_CT</span><br><span> {</span><br><span>  var integer frame_nr_51;</span><br><span>     frame_nr_51 := frame_nr mod 51</span><br><span>@@ -3158,7 +3158,9 @@</span><br><span>       return;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_l1_count_paging(inout integer num_paging_rcv_msgs, inout integer num_paging_rcv_ids, PagingTestCfg cfg)</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_l1_count_paging(inout integer num_paging_rcv_msgs,</span><br><span style="color: hsl(120, 100%, 40%);">+                                inout integer num_paging_rcv_ids,</span><br><span style="color: hsl(120, 100%, 40%);">+                             PagingTestCfg cfg)</span><br><span> runs on test_CT {</span><br><span>   var L1ctlDlMessage dl;</span><br><span>       [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, c_DummyUI)) {</span><br><span>@@ -3210,7 +3212,7 @@</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record PagingTestCfg {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record PagingTestCfg {</span><br><span>   boolean combined_ccch,</span><br><span>       integer bs_ag_blks_res,</span><br><span>      float load_factor,</span><br><span>@@ -3219,7 +3221,7 @@</span><br><span>   boolean use_tmsi</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record PagingTestState {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record PagingTestState {</span><br><span>        integer num_paging_sent,</span><br><span>     integer num_paging_rcv_msgs,</span><br><span>         integer num_paging_rcv_ids,</span><br><span>@@ -3439,8 +3441,9 @@</span><br><span>  ma := ''B</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) ChannelDescription ts_ChanDescH0(template (value) RslChannelNr chan_nr, uint3_t tsc := 7,</span><br><span style="color: hsl(0, 100%, 40%);">-                                              uint12_t arfcn := mp_trx0_arfcn) := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) ChannelDescription ts_ChanDescH0(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       template (value) uint3_t tsc := 7,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    template (value) uint12_t arfcn := mp_trx0_arfcn) := {</span><br><span>     chan_nr := chan_nr,</span><br><span>  tsc := tsc,</span><br><span>  h := false,</span><br><span>@@ -3448,8 +3451,9 @@</span><br><span>  maio_hsn := omit</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) ChannelDescription ts_ChanDescH1(template (value) RslChannelNr chan_nr, uint3_t tsc := 7,</span><br><span style="color: hsl(0, 100%, 40%);">-                                               template (value) MaioHsn maio_hsn) := {</span><br><span style="color: hsl(120, 100%, 40%);">+private template (value) ChannelDescription ts_ChanDescH1(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     template (value) uint3_t tsc := 7,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    template (value) MaioHsn maio_hsn) := {</span><br><span>    chan_nr := chan_nr,</span><br><span>  tsc := tsc,</span><br><span>  h := true,</span><br><span>@@ -3544,19 +3548,22 @@</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span> /* tuple of Frame Number + decoded SI */</span><br><span style="color: hsl(0, 100%, 40%);">-type record SystemInformationFn {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record SystemInformationFn {</span><br><span>        GsmFrameNumber frame_number,</span><br><span>         SystemInformation si</span><br><span> }</span><br><span> </span><br><span> /* an arbitrary-length vector of decoded SI + gsmtap header */</span><br><span style="color: hsl(0, 100%, 40%);">-type record of SystemInformationFn SystemInformationVector;</span><br><span style="color: hsl(120, 100%, 40%);">+private type record of SystemInformationFn SystemInformationVector;</span><br><span> </span><br><span> /* an array of SI-vectors indexed by TC value */</span><br><span style="color: hsl(0, 100%, 40%);">-type SystemInformationVector SystemInformationVectorPerTc[8];</span><br><span style="color: hsl(120, 100%, 40%);">+private type SystemInformationVector SystemInformationVectorPerTc[8];</span><br><span> </span><br><span> /* determine if a given SI vector contains given SI type at least once */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_si_vecslot_contains(SystemInformationVector arr, RrMessageType key, boolean bcch_ext := false) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_si_vecslot_contains(SystemInformationVector arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  RrMessageType key,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    boolean bcch_ext := false)</span><br><span style="color: hsl(120, 100%, 40%);">+return boolean {</span><br><span>  for (var integer i:= 0; i< sizeof(arr); i := i + 1) {</span><br><span>             var integer fn_mod51 := arr[i].frame_number mod 51;</span><br><span>          if (not bcch_ext and fn_mod51 == 2 or</span><br><span>@@ -3570,14 +3577,19 @@</span><br><span> }</span><br><span> </span><br><span> /* ensure a given TC slot of the SI vector contains given SI type at least once at TC */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_ensure_si_vec_contains(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false) {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_ensure_si_vec_contains(SystemInformationVectorPerTc arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        integer tc, RrMessageType key,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        boolean ext_bcch := false)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span>      if (not f_si_vecslot_contains(arr[tc], key, ext_bcch)) {</span><br><span>             Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("No ", key, " in TC=", tc, "!"));</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span> /* check if a given SI vector contains given SI type at least once on any TC */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_si_vec_contains(SystemInformationVectorPerTc arr, RrMessageType key) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_si_vec_contains(SystemInformationVectorPerTc arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                              RrMessageType key)</span><br><span style="color: hsl(120, 100%, 40%);">+return boolean {</span><br><span>      for (var integer tc:= 0; tc < sizeof(arr); tc := tc + 1) {</span><br><span>                if (f_si_vecslot_contains(arr[tc], key) or</span><br><span>               f_si_vecslot_contains(arr[tc], key, true)) {</span><br><span>@@ -3588,7 +3600,11 @@</span><br><span> }</span><br><span> </span><br><span> /* determine if a given SI vector contains given SI type at least N of M times */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_si_vecslot_contains_n_of_m(SystemInformationVector arr, RrMessageType key, boolean bcch_ext := false, integer n := 1, integer m := 4) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_si_vecslot_contains_n_of_m(SystemInformationVector arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        RrMessageType key,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            boolean bcch_ext := false,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            integer n := 1, integer m := 4)</span><br><span style="color: hsl(120, 100%, 40%);">+return boolean {</span><br><span>      var integer count := 0;</span><br><span>      if (sizeof(arr) < m) {</span><br><span>            Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Error: Insufficient SI in array");</span><br><span>@@ -3610,14 +3626,21 @@</span><br><span> }</span><br><span> </span><br><span> /* ensure a given TC slot of the SI vector contains given SI type at least N out of M times at TC */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_ensure_si_vec_contains_n_of_m(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false, integer n, integer m) {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_ensure_si_vec_contains_n_of_m(SystemInformationVectorPerTc arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            integer tc, RrMessageType key,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                boolean ext_bcch := false,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            integer n, integer m)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span>    if (not f_si_vecslot_contains_n_of_m(arr[tc], key, ext_bcch, n, m)) {</span><br><span>                Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Not ", n, "/", m, " of ", key, " in TC=", tc, "!"));</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span> /* determine if a given SI vector contains given SI type at least once */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_si_vecslot_contains_only(SystemInformationVector arr, RrMessageType key, boolean bcch_ext := false) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_si_vecslot_contains_only(SystemInformationVector arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          RrMessageType key,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            boolean bcch_ext := false)</span><br><span style="color: hsl(120, 100%, 40%);">+return boolean {</span><br><span>     for (var integer i:= 0; i< sizeof(arr); i := i + 1) {</span><br><span>             var integer fn_mod51 := arr[i].frame_number mod 51;</span><br><span>          if (not bcch_ext and fn_mod51 == 2 or</span><br><span>@@ -3631,14 +3654,17 @@</span><br><span> }</span><br><span> </span><br><span> /* ensure a given TC slot of the SI vector contains only given SI type */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_ensure_si_vec_contains_only(SystemInformationVectorPerTc arr, integer tc, RrMessageType key, boolean ext_bcch := false) {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_ensure_si_vec_contains_only(SystemInformationVectorPerTc arr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          integer tc, RrMessageType key,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        boolean ext_bcch := false)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span>         if (not f_si_vecslot_contains_only(arr[tc], key, ext_bcch)) {</span><br><span>                Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Not all ", key, " in TC=", tc, "!"));</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span> /* SI configuration of cell, against which we validate actual SI messages */</span><br><span style="color: hsl(0, 100%, 40%);">-type set SystemInformationConfig {</span><br><span style="color: hsl(120, 100%, 40%);">+private type set SystemInformationConfig {</span><br><span>     boolean bcch_extended,</span><br><span>       boolean si1_present,</span><br><span>         boolean si2bis_present,</span><br><span>@@ -3658,7 +3684,9 @@</span><br><span> }</span><br><span> </span><br><span> /* validate the SI scheduling according to TS 45.002 version 14.1.0 Release 14, Section 6.3.1.3 */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_validate_si_scheduling(SystemInformationConfig cfg, SystemInformationVectorPerTc si_per_tc) {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_validate_si_scheduling(SystemInformationConfig cfg,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          SystemInformationVectorPerTc si_per_tc)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span>         var integer i;</span><br><span>       for (i := 0; i < sizeof(si_per_tc); i := i + 1) {</span><br><span>                 if (sizeof(si_per_tc[i]) == 0) {</span><br><span>@@ -3856,7 +3884,8 @@</span><br><span> }</span><br><span> </span><br><span> /* sample Systme Information for specified duration via L1CTL */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_l1_sample_si(L1CTL_PT pt, float duration := 8.0) return SystemInformationVectorPerTc {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_l1_sample_si(L1CTL_PT pt, float duration := 8.0)</span><br><span style="color: hsl(120, 100%, 40%);">+return SystemInformationVectorPerTc {</span><br><span>   timer T := duration;</span><br><span>         var SystemInformationVectorPerTc si_per_tc;</span><br><span>  var L1ctlDlMessage l1_dl;</span><br><span>@@ -5756,14 +5785,15 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type record RllTestCase {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record RllTestCase {</span><br><span>       uint3_t         sapi,</span><br><span>        RslLinkId       link_id,</span><br><span>     octetstring     l3,</span><br><span>  boolean         exp</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-type record of RllTestCase RllTestCases;</span><br><span style="color: hsl(0, 100%, 40%);">-template RllTestCase t_EITC(uint3_t sapi, RslLinkId id, octetstring l3, boolean exp) := {</span><br><span style="color: hsl(120, 100%, 40%);">+private type record of RllTestCase RllTestCases;</span><br><span style="color: hsl(120, 100%, 40%);">+private template RllTestCase t_EITC(uint3_t sapi, RslLinkId id,</span><br><span style="color: hsl(120, 100%, 40%);">+                              octetstring l3, boolean exp) := {</span><br><span>        sapi := sapi,</span><br><span>        link_id := id,</span><br><span>       l3 := l3,</span><br><span>@@ -6152,7 +6182,7 @@</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span> /* send UNITDATA_REQ from BTS to MS and expect it to arrive */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_unitdata_mt(RslLinkId link_id, octetstring l3) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_unitdata_mt(RslLinkId link_id, octetstring l3) runs on ConnHdlr {</span><br><span>       RSL.send(ts_RSL_UNITDATA_REQ(g_chan_nr, link_id, l3));</span><br><span>       if (link_id.c == SACCH) {</span><br><span>            f_l1_exp_lapdm(tr_LAPDm_B4_UI(link_id.sapi, cr_MT_CMD, l3));</span><br><span>@@ -6418,23 +6448,23 @@</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span> /* XXX These functions must be kept in sync with g_AllChannels defined on test_CT. */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_g_chan_is_tchf() runs on ConnHdlr return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_g_chan_is_tchf() runs on ConnHdlr return boolean {</span><br><span>         return (g_chan_nr == valueof(ts_RslChanNr_Bm(1)) or</span><br><span>          g_chan_nr == valueof(ts_RslChanNr_Bm(2)) or</span><br><span>          g_chan_nr == valueof(ts_RslChanNr_Bm(3)) or</span><br><span>          g_chan_nr == valueof(ts_RslChanNr_Bm(4)));</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-function f_g_chan_is_tchh() runs on ConnHdlr return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_g_chan_is_tchh() runs on ConnHdlr return boolean {</span><br><span>  return (g_chan_nr == valueof(ts_RslChanNr_Lm(5,0)) or</span><br><span>                g_chan_nr == valueof(ts_RslChanNr_Lm(5,1)));</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-function f_g_chan_is_sdcch4() runs on ConnHdlr return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_g_chan_is_sdcch4() runs on ConnHdlr return boolean {</span><br><span>    return (g_chan_nr == valueof(ts_RslChanNr_SDCCH4(0,0)) or</span><br><span>            g_chan_nr == valueof(ts_RslChanNr_SDCCH4(0,1)) or</span><br><span>            g_chan_nr == valueof(ts_RslChanNr_SDCCH4(0,2)) or</span><br><span>            g_chan_nr == valueof(ts_RslChanNr_SDCCH4(0,3)));</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-function f_g_chan_is_sdcch8() runs on ConnHdlr return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_g_chan_is_sdcch8() runs on ConnHdlr return boolean {</span><br><span>        return (g_chan_nr == valueof(ts_RslChanNr_SDCCH8(6,0)) or</span><br><span>            g_chan_nr == valueof(ts_RslChanNr_SDCCH8(6,1)) or</span><br><span>            g_chan_nr == valueof(ts_RslChanNr_SDCCH8(6,2)) or</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19134">change 19134</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/+/19134"/><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: I99ccf398130c7e5c2aac1932ebb83f158fed281d </div>
<div style="display:none"> Gerrit-Change-Number: 19134 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>