From ca97403ec390ab1e163f123a407f2a4e92df5b61 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 1 Sep 2020 07:20:39 +0700 Subject: 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 --- bsc/BSC_Tests.ttcn | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'bsc') diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index d0719a96..0099d5a7 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() ); } } -- cgit v1.2.3