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
This commit is contained in:
Vadim Yanitskiy 2020-09-01 07:20:39 +07:00
parent aeb54a2f29
commit ca97403ec3
1 changed files with 80 additions and 0 deletions

View File

@ -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() );
}
}