PCU: Timing Advance: introduce TC_ta_idle_dl_tbf_ass

This test case initiates the packet Downlink assignment procedure
by sending a DL-UNITDATA PDU containing a random TLLI and checks
Timing Advance value indicated in the Immediate Assignment.

Currently fails due to a bug in the IUT (TA=220).

Change-Id: I410abedcc549495f30b5355d399a85648408a946
This commit is contained in:
Vadim Yanitskiy 2020-04-28 18:24:41 +07:00
parent a0b47cf825
commit fd6cbdf3ed
1 changed files with 33 additions and 0 deletions

View File

@ -603,6 +603,38 @@ testcase TC_ta_rach_imm_ass() runs on RAW_PCU_Test_CT {
}
}
/* Verify Timing Advance value(s) indicated during the packet Downlink assignment
* procedure as per 3GPP TS 44.018, section 3.5.3. There seems to be a bug in the
* IUT that causes it to send an unreasonable Timing Advance value > 0 despite
* no active TBF exists at the moment of establishment (idle mode). */
testcase TC_ta_idle_dl_tbf_ass() runs on RAW_PCU_Test_CT {
var OCT4 tlli := f_rnd_octstring(4);
var GsmRrMessage rr_imm_ass;
/* Initialize NS/BSSGP side */
f_init_bssgp();
/* Initialize the PCU interface abstraction */
f_init_raw(testcasename());
/* Establish BSSGP connection to the PCU */
f_bssgp_establish();
f_bssgp_client_llgmm_assign('FFFFFFFF'O, tlli);
/* SGSN sends some DL data, PCU will initiate Packet Downlink
* Assignment on CCCH (PCH). We don't care about the payload. */
BSSGP[0].send(ts_BSSGP_DL_UD(tlli, f_rnd_octstring(10)));
f_pcuif_rx_pch_imm_tbf_ass(rr_imm_ass); // TODO: match by TLLI!
/* Make sure that Timing Advance is 0 (the actual value is not known yet).
* As per 3GPP S 44.018, section 3.5.3.1.2, the network *shall* initiate
* the procedures defined in 3GPP TS 44.060 or use the polling mechanism. */
if (not match(rr_imm_ass, tr_IMM_TBF_ASS(ta := 0))) {
setverdict(fail, "Timing Advance value doesn't match");
mtc.stop;
}
}
/* Verify that the PCU generates valid PTCCH/D messages
* while neither Uplink nor Downlink TBF is established. */
testcase TC_ta_ptcch_idle() runs on RAW_PCU_Test_CT {
@ -1684,6 +1716,7 @@ control {
execute( TC_pcuif_suspend() );
execute( TC_ta_ptcch_idle() );
execute( TC_ta_rach_imm_ass() );
execute( TC_ta_idle_dl_tbf_ass() );
execute( TC_ta_ptcch_ul_multi_tbf() );
execute( TC_cs_lqual_ul_tbf() );
execute( TC_cs_initial_ul() );