bts: Set not only SI3 but also SI2+SI4 during initialization
Change-Id: I9146792285cdb7225150320d1949aaec28290abf
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index ba76cf6..7d4469e 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -95,16 +95,26 @@
acc := '1111111111111111'B
};
+template (value) CellSelectionParameters ts_CellSelPar_default := {
+ cell_resel_hyst_2dB := 0,
+ ms_txpwr_max_cch := 0,
+ acs := '0'B,
+ neci := true,
+ rxlev_access_min := 0
+}
+
+template (value) LocationAreaIdentification ts_LAI_default := {
+ mcc_mnc := '262F42'H,
+ lac := 42
+}
+
/* Default SYSTEM INFORMATION 3 */
template (value) SystemInformation ts_SI3_default := {
header := t_RrHeader(SYSTEM_INFORMATION_TYPE_3, 0),
payload := {
si3 := {
cell_id := 23,
- lai := {
- mcc_mnc := '262F42'H,
- lac := 42
- },
+ lai := ts_LAI_default,
ctrl_chan_desc := {
msc_r99 := true,
att := true,
@@ -122,19 +132,51 @@
dtx := MS_MAY_USE_UL_DTX,
radio_link_tout_div4 := 4/4
},
- cell_sel_par := {
- cell_resel_hyst_2dB := 0,
- ms_txpwr_max_cch := 0,
- acs := '0'B,
- neci := true,
- rxlev_access_min := 0
- },
+ cell_sel_par := ts_CellSelPar_default,
rach_control := ts_RachCtrl_default,
rest_octets := ''O
}
}
}
+template (value) SystemInformation ts_SI2_default := {
+ header := t_RrHeader(SYSTEM_INFORMATION_TYPE_2, 0),
+ payload := {
+ si2 := {
+ bcch_freq_list := '00000000000000000000000000000000'O,
+ ncc_permitted := '11111111'B,
+ rach_control := ts_RachCtrl_default
+ }
+ }
+}
+
+template (value) SystemInformation ts_SI4_default := {
+ header := t_RrHeader(SYSTEM_INFORMATION_TYPE_4, 0),
+ payload := {
+ si4 := {
+ lai := ts_LAI_default,
+ cell_sel_par := ts_CellSelPar_default,
+ rach_control := ts_RachCtrl_default,
+ cbch_chan_desc := omit,
+ cbch_mobile_alloc := omit,
+ rest_octets := ''O
+ }
+ }
+}
+
+function f_rsl_bcch_fill_raw(RSL_IE_SysinfoType rsl_si_type, octetstring si_enc)
+runs on test_CT {
+ log("Setting ", rsl_si_type, ": ", si_enc);
+ RSL_CCHAN.send(ts_RSL_UD(ts_RSL_BCCH_INFO(rsl_si_type, si_enc)));
+}
+
+function f_rsl_bcch_fill(RSL_IE_SysinfoType rsl_si_type, template (value) SystemInformation si_dec)
+runs on test_CT {
+ var octetstring si_enc := enc_SystemInformation(valueof(si_dec));
+ log("Setting ", rsl_si_type, ": ", si_dec);
+ f_rsl_bcch_fill_raw(rsl_si_type, si_enc);
+}
+
/* global init function */
function f_init(charstring id := "BTS-Test") runs on test_CT {
f_init_rsl(id);
@@ -142,10 +184,10 @@
f_sleep(0.5); /* workaround for OS#3000 */
/* Send SI3 to the BTS, it is needed for various computations */
- var SystemInformation si3 := valueof(ts_SI3_default);
- log("Sending SI3 ", si3);
- var octetstring si3_enc := enc_SystemInformation(si3);
- RSL_CCHAN.send(ts_RSL_UD(ts_RSL_BCCH_INFO(RSL_SYSTEM_INFO_3, si3_enc)));
+ f_rsl_bcch_fill(RSL_SYSTEM_INFO_3, ts_SI3_default);
+ /* SI2 + SI4 are required for SI testing as they are mandatory defaults */
+ f_rsl_bcch_fill(RSL_SYSTEM_INFO_2, ts_SI2_default);
+ f_rsl_bcch_fill(RSL_SYSTEM_INFO_4, ts_SI4_default);
}
/* Attach L1CTL to master test_CT (classic tests, non-handler mode) */