pcu: Introduce test TC_nacc_outbound_success_twice_nocache

Change-Id: I64369eb02fa611f9249696ffe249b0d6d917fa70
This commit is contained in:
Pau Espin 2021-01-27 19:04:54 +01:00 committed by Pau Espin Pedrol
parent 14d3a8e7c3
commit 853666813e
1 changed files with 54 additions and 0 deletions

View File

@ -3836,6 +3836,59 @@ testcase TC_nacc_outbound_success_twice() runs on RAW_PCU_Test_CT {
f_shutdown(__BFILE__, __LINE__, final := true);
}
/* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC,
* TS 44.060 sec 8.8) twice, the second time after caches timed out
*/
testcase TC_nacc_outbound_success_twice_nocache() runs on RAW_PCU_Test_CT {
var PollFnCtx pollctx;
var GprsMS ms;
var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default);
var MultislotCap_GPRS mscap_gprs := {
gprsmultislotclass := '00011'B,
gprsextendeddynalloccap := '0'B
};
var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) };
var template (value) RlcmacUlCtrlMsg cell_chf_notif;
/* Initialize osmo-bsc emulation neighbor resolution CTRL port */
f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port);
/* Initialize NS/BSSGP side */
f_init_bssgp();
/* Initialize GPRS MS side */
f_init_gprs_ms();
ms := g_ms[0]; /* We only use first MS in this test */
/* Initialize the PCU interface abstraction */
f_init_raw(testcasename(), info_ind);
/* Make sure we are not affected by full cache from previous tests */
f_pcuvty_flush_neigh_caches();
/* Set timeout values for caches so that entries will be erased before the second try */
f_pcuvty_set_neigh_caches(1, 1);
/* Establish BSSGP connection to the PCU */
f_bssgp_establish();
f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
/* Send PACKET RESOURCE REQUEST */
pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap));
/* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts);
/* Start NACC from MS side */
f_outbound_nacc_success(ms, info_ind);
/* CTRL client should have disconnected from us */
f_ipa_ctrl_wait_link_down();
/* wait for cache entries to time out */
f_sleep(2.0);
/* First NACC procedure is done, let's try to start a new one now that previous queries have timed out: */
f_outbound_nacc_success(ms, info_ind);
f_shutdown(__BFILE__, __LINE__, final := true);
}
/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */
testcase TC_nacc_outbound_rac_ci_resolve_conn_refused() runs on RAW_PCU_Test_CT {
var RlcmacDlBlock dl_block;
@ -4174,6 +4227,7 @@ control {
execute( TC_pcuif_info_ind_subsequent() );
execute( TC_nacc_outbound_success() );
execute( TC_nacc_outbound_success_twice() );
execute( TC_nacc_outbound_success_twice_nocache() );
execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() );
execute( TC_nacc_outbound_rac_ci_resolve_timeout() );
execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() );