pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38598?usp=email )
Change subject: hnbgw: Introduce test TC_ps_iu_release_req_rua_disconnect ......................................................................
hnbgw: Introduce test TC_ps_iu_release_req_rua_disconnect
Change-Id: Id24a5aed5255af77fbbd30521be70700a9bff1c9 --- M hnbgw/HNBGW_Tests.ttcn M hnbgw/expected-results.xml 2 files changed, 44 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 05d5e6a..e15bba4 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -1433,6 +1433,47 @@ f_shutdown_helper(); }
+/* Same as TC_cs_iu_release_req_rua_disconnect, but with PS RAB */ +private function f_tc_ps_iu_release_req_rua_disconnect(charstring id) runs on ConnHdlr { + var RANAP_PDU tx; + + tx := f_build_initial_ue(g_pars); + f_iuh2iu_connect(tx); + + f_create_rab_ps(); + + RUA.send(ts_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted)); + BSSAP.receive(tr_RANAP_IuReleaseRequest(ts_RanapCause_radio_rab_preempted)); + + RUA.send(RUA_Disc_Req:{{misc:=unspecified}, omit}); + + /* HNBGW tears down related PFCP sessions: */ + if (g_pars.pfcp_pars.pfcp_enabled) { + var PDU_PFCP m := f_pfcp_expect(tr_PFCP_Session_Del_Req(g_pars.pfcp_pars.up_f_seid.seid)); + PFCP.send(ts_PFCP_Session_Del_Resp(m.sequence_number, g_pars.pfcp_pars.hnbgw_f_seid.seid)); + } + + /* We cannot guarantee we can send Iu-ReleaseCommand at RANAP_Emulation + * before it receives the RLSD from HNBGW, hence we don't send it. If we + * sent it, it would be ignored by HNBGW since the RUA conn is already + * disconnected: + * BSSAP.send(ts_RANAP_IuReleaseCommand(ts_RanapCause_radio_rab_preempted)); + */ + + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); + /* Let RAN_Emulation some time to answer RLSD with RLC: */ + f_sleep(1.0); +} +testcase TC_ps_iu_release_req_rua_disconnect() runs on test_CT { + var ConnHdlr vc_conn; + g_num_hnbs := 1; + f_init(); + vc_conn := f_start_handler_with_pars(refers(f_tc_ps_iu_release_req_rua_disconnect), f_TestHdlrParams(9, true)); + vc_conn.done; + + f_shutdown_helper(); +} + friend function f_tc_ps_rab_assignment(charstring id) runs on ConnHdlr { var RANAP_PDU tx;
@@ -2344,6 +2385,7 @@ execute(TC_ranap_cs_creq_cref()); execute(TC_ranap_ps_creq_cref()); execute(TC_cs_iu_release_req_rua_disconnect()); + execute(TC_ps_iu_release_req_rua_disconnect()); execute(TC_ps_rab_assignment());
execute( TC_mscpool_L3Compl_on_1_cnlink() ); diff --git a/hnbgw/expected-results.xml b/hnbgw/expected-results.xml index 7bbcdec..70e29e6 100644 --- a/hnbgw/expected-results.xml +++ b/hnbgw/expected-results.xml @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<testsuite name='Titan' tests='53' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'> +<testsuite name='Titan' tests='54' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'> <testcase classname='HNBGW_Tests' name='TC_hnb_register' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_hnb_register_duplicate' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_hnb_register_duplicate_reuse_sctp_assoc' time='MASKED'/> @@ -25,6 +25,7 @@ <testcase classname='HNBGW_Tests' name='TC_ranap_cs_creq_cref' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_ranap_ps_creq_cref' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_cs_iu_release_req_rua_disconnect' time='MASKED'/> + <testcase classname='HNBGW_Tests' name='TC_ps_iu_release_req_rua_disconnect' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_ps_rab_assignment' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_mscpool_L3Compl_on_1_cnlink' time='MASKED'/> <testcase classname='HNBGW_Tests' name='TC_mscpool_L3Complete_by_imsi_round_robin' time='MASKED'/>