summaryrefslogtreecommitdiffstats
path: root/bsc
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-09-01 07:20:39 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-09-01 21:45:05 +0700
commitca97403ec390ab1e163f123a407f2a4e92df5b61 (patch)
tree551df63a9243a53cd6570c0c1e0d32d17a695fd2 /bsc
parentaeb54a2f29c4b7db59428828e8cb5b9a857945a6 (diff)
BSC_Tests/hopping: add TC_fh_params_si4_cbch
This test case verifies presence and correctness of the hopping parameters in (RR) System Information Type 4 (CBCH description). Since the C0/TS0 (BCCH+SDCCH4+CBCH) shall not be hopping, let's temporarily re-configure TS0 as BCCH, and TS1 as SDCCH8+CBCH. According to 3GPP TS 44.018, section 9.1.36.1, if CBCH is active in the cell, the CBCH Channel Description IE indicates where to find it (physical channel description). According to section 9.1.36.2, the CBCH Mobile Allocation IE shall be included if CBCH Channel Description IE indicates that frequency hopping is in use. Change-Id: Ibc3b73697a1d2c8dbb27274e48f5e5ba21fdd540 Related: SYS#4868, OS#4545
Diffstat (limited to 'bsc')
-rw-r--r--bsc/BSC_Tests.ttcn80
1 files changed, 80 insertions, 0 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index d0719a9..0099d5a 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -7151,6 +7151,85 @@ testcase TC_fh_params_assignment_cmd() runs on test_CT {
setverdict(pass);
}
+/* Verify the hopping parameters in System Information Type 4 */
+testcase TC_fh_params_si4_cbch() runs on test_CT {
+ var FHParamsTrx fhp := f_TC_fh_params_gen(tr_tn := 1);
+ var ASP_RSL_Unitdata rx_rsl_ud;
+ timer T := 5.0;
+
+ f_init_vty();
+
+ /* (Re)configure TS0 as BCCH and TS1 as SDCCH8+CBCH */
+ f_vty_enter_cfg_trx(BSCVTY, trx := 0);
+
+ f_vty_transceive(BSCVTY, "timeslot 0");
+ f_vty_transceive(BSCVTY, "phys_chan_config ccch");
+ f_vty_transceive(BSCVTY, "exit"); /* go back */
+
+ f_vty_transceive(BSCVTY, "timeslot 1");
+ f_vty_transceive(BSCVTY, "phys_chan_config sdcch8+cbch");
+ f_vty_transceive(BSCVTY, "end"); /* we're done */
+
+ f_TC_fh_params_set(fhp); /* Enable frequency hopping */
+ f_vty_transceive(BSCVTY, "drop bts connection 0 oml");
+
+ f_init(1);
+
+ T.start;
+ alt {
+ [] IPA_RSL[0].receive(tr_ASP_RSL_UD(tr_RSL_BCCH_INFO(RSL_SYSTEM_INFO_4))) -> value rx_rsl_ud {
+ var RSL_IE_Body ie := rx_rsl_ud.rsl.ies[2].body; /* FULL BCCH Information IE */
+ var SystemInformation si := dec_SystemInformation(ie.other.payload);
+
+ /* Make sure that what we decoded is System Information Type 4 */
+ if (si.header.message_type != SYSTEM_INFORMATION_TYPE_4) {
+ setverdict(fail, "RSL FULL BCCH Information IE contains: ", si);
+ repeat;
+ }
+
+ /* Make sure that CBCH Channel Description IE is present */
+ if (not ispresent(si.payload.si4.cbch_chan_desc)) {
+ setverdict(fail, "CBCH Channel Description IE is absent");
+ break;
+ }
+
+ /* Finally, check the hopping parameters (HSN, MAIO) */
+ var ChannelDescription chan_desc := si.payload.si4.cbch_chan_desc.v;
+ f_TC_fh_params_match_chan_desc(fhp, chan_desc);
+
+ /* 3GPP TS 44.018, section 9.1.36.2 "CBCH Mobile Allocation":
+ * The CBCH Mobile Allocation IE *shall* be present if FH is enabled. */
+ if (chan_desc.h and not ispresent(si.payload.si4.cbch_mobile_alloc)) {
+ setverdict(fail, "FH enabled, but Mobile Allocation IE is absent");
+ break;
+ } else if (chan_desc.h and ispresent(si.payload.si4.cbch_mobile_alloc)) {
+ f_TC_fh_params_match_ma(fhp, chan_desc.chan_nr.tn,
+ si.payload.si4.cbch_mobile_alloc.v);
+ }
+ }
+ [] IPA_RSL[0].receive { repeat; }
+ [] T.timeout {
+ setverdict(fail, "Timeout waiting for RSL BCCH INFOrmation (SI4)");
+ }
+ }
+
+ /* Disable frequency hopping */
+ f_TC_fh_params_unset(fhp);
+
+ /* (Re)configure TS0 as CCCH+SDCCH4 and TS1 as TCH/F */
+ f_vty_enter_cfg_trx(BSCVTY, trx := 0);
+
+ f_vty_transceive(BSCVTY, "timeslot 0");
+ f_vty_transceive(BSCVTY, "phys_chan_config ccch+sdcch4");
+ f_vty_transceive(BSCVTY, "exit"); /* go back */
+
+ f_vty_transceive(BSCVTY, "timeslot 1");
+ f_vty_transceive(BSCVTY, "phys_chan_config tch/f");
+ f_vty_transceive(BSCVTY, "end"); /* we're done */
+
+ setverdict(pass);
+}
+
/* Dyn PDCH todo:
* activate OSMO as TCH/F
* activate OSMO as TCH/H
@@ -7383,6 +7462,7 @@ control {
execute( TC_fh_params_chan_activ() );
execute( TC_fh_params_imm_ass() );
execute( TC_fh_params_assignment_cmd() );
+ execute( TC_fh_params_si4_cbch() );
}
}