pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24679 )

Change subject: bsc: Validate new 'srvcc fast-return' VTY command
......................................................................

bsc: Validate new 'srvcc fast-return' VTY command

Related: SYS#5337
Change-Id: I227abc3793255e3916eba0dbc1460f46ec9926fe
---
M bsc/BSC_Tests.ttcn
M bsc/MSC_ConnectionHandler.ttcn
2 files changed, 61 insertions(+), 6 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 074fa60..d15b2ec 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -5226,11 +5226,15 @@
 }

 private function f_tc_ho_into_this_bsc(charstring id) runs on MSC_ConnHdlr {
-       var template PDU_ML3_NW_MS exp_rr_rel_tmpl := tr_RRM_RR_RELEASE;
+       var template PDU_ML3_NW_MS exp_rr_rel_tmpl;
        var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs := omit;
        if (not istemplatekind(g_pars.last_used_eutran_plmn, "omit")) {
                oldToNewBSSIEs := 
f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn));
+       }
+       if (g_pars.exp_fast_return) {
                exp_rr_rel_tmpl := tr_RRM_RR_RELEASE_CellSelectInd;
+       } else {
+               exp_rr_rel_tmpl := tr_RRM_RR_RELEASE;
        }
        f_ho_into_this_bsc(id, oldToNewBSSIEs);
        f_perform_clear(RSL, exp_rr_rel_tmpl);
@@ -5278,10 +5282,26 @@
 testcase TC_srvcc_eutran_to_geran() runs on test_CT {
        var TestHdlrParams pars := f_gen_test_hdlr_pars();
        pars.last_used_eutran_plmn := '323454'O;
+       pars.exp_fast_return := true;
        f_tc_ho_into_this_bsc_main(pars);
        f_shutdown_helper();
 }

+/* Same as TC_srvcc_eutran_to_geran, but test explicitly forbiding fast return
+   on the BTS. As a result, RR Release shouldn't contain the EUTRAN neighbor
+   list when the channel is released. */
+testcase TC_srvcc_eutran_to_geran_forbid_fast_return() runs on test_CT {
+       f_init_vty();
+       f_vty_allow_srvcc_fast_return(true, 0)
+
+       var TestHdlrParams pars := f_gen_test_hdlr_pars();
+       pars.last_used_eutran_plmn := '323454'O;
+       pars.exp_fast_return := false;
+       f_tc_ho_into_this_bsc_main(pars);
+       f_vty_allow_srvcc_fast_return(false, 0);
+       f_shutdown_helper();
+}
+
 private function f_tc_srvcc_eutran_to_geran_ho_out(charstring id) runs on 
MSC_ConnHdlr {
        var template (omit) BSSMAP_oldToNewBSSIEs oldToNewBSSIEs;
        oldToNewBSSIEs := 
f_ts_BSSMAP_oldToNewBSSIEs(ts_BSSMAP_LastUsedEUTRANPLMNId(g_pars.last_used_eutran_plmn));
@@ -5289,15 +5309,16 @@
        f_ho_out_of_this_bsc(oldToNewBSSIEs);
        setverdict(pass);
 }
-/* First, HO into BSC from EUTRAN (SRVCC): HO Request contains "Old BSS to New
-   BSS Information" IE with "Last Used E-UTRAN PLMN Id".
-   Second, HO to another BSC: HO Required contains "Old BSS to New BSS 
Information"
-   IE with "Last Used E-UTRAN PLMN Id" from first step. */
-testcase TC_srvcc_eutran_to_geran_ho_out() runs on test_CT {
+
+private function f_tc_srvcc_eutran_to_geran_ho_out_main(boolean 
disable_fast_return)
+       runs on test_CT {
        var MSC_ConnHdlr vc_conn;
        var TestHdlrParams pars := f_gen_test_hdlr_pars();

        f_init(1, true);
+       if (disable_fast_return) {
+               f_vty_allow_srvcc_fast_return(true, 0);
+       }
        f_sleep(1.0);

        f_ctrs_bsc_and_bts_init();
@@ -5316,9 +5337,26 @@
        f_ctrs_bsc_and_bts_add(0, "interbsc_ho_out:attempted", 1);
        f_ctrs_bsc_and_bts_add(0, "interbsc_ho_out:completed", 1);
        f_ctrs_bsc_and_bts_verify();
+
+       if (disable_fast_return) {
+               f_vty_allow_srvcc_fast_return(false, 0);
+       }
        f_shutdown_helper();
 }

+/* First, HO into BSC from EUTRAN (SRVCC): HO Request contains "Old BSS to New
+   BSS Information" IE with "Last Used E-UTRAN PLMN Id".
+   Second, HO to another BSC: HO Required contains "Old BSS to New BSS 
Information"
+   IE with "Last Used E-UTRAN PLMN Id" from first step. */
+testcase TC_srvcc_eutran_to_geran_ho_out() runs on test_CT {
+       f_tc_srvcc_eutran_to_geran_ho_out_main(false);
+}
+/* Validate subsequent intra-GSM-HO works the same (with OldBSSToNewBSSInfo IE)
+ * independently of fast-reture allowed/forbidden in local BTS */
+testcase TC_srvcc_eutran_to_geran_ho_out_forbid_fast_return() runs on test_CT {
+       f_tc_srvcc_eutran_to_geran_ho_out_main(true);
+}
+
 private function f_tc_ho_in_fail_msc_clears(charstring id) runs on 
MSC_ConnHdlr {
        var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, 
RSL_CHAN_NR_Bm_ACCH));
        f_rslem_register(0, new_chan_nr);
@@ -7306,6 +7344,19 @@
        f_vty_transceive(BSCVTY, "exit");
 }

+/* Allow/Forbid Fast Return after SRVCC on a given BTS via VTY */
+private function f_vty_allow_srvcc_fast_return(boolean allow, integer bts_nr) 
runs on test_CT {
+       f_vty_enter_cfg_bts(BSCVTY, bts_nr);
+       if (allow) {
+               f_vty_transceive(BSCVTY, "srvcc fast-return allow");
+       } else {
+               f_vty_transceive(BSCVTY, "srvcc fast-return forbid");
+       }
+       f_vty_transceive(BSCVTY, "exit");
+       f_vty_transceive(BSCVTY, "exit");
+       f_vty_transceive(BSCVTY, "exit");
+}
+
 /* Begin assignmet procedure and send an EMERGENCY SETUP (RR) */
 private function f_assignment_emerg_setup() runs on MSC_ConnHdlr {
        var PDU_ML3_MS_NW emerg_setup;
@@ -8950,6 +9001,8 @@
        }
        execute( TC_srvcc_eutran_to_geran() );
        execute( TC_srvcc_eutran_to_geran_ho_out() );
+       execute( TC_srvcc_eutran_to_geran_forbid_fast_return() );
+       execute( TC_srvcc_eutran_to_geran_ho_out_forbid_fast_return() );
        execute( TC_ho_in_fail_msc_clears() );
        execute( TC_ho_in_fail_msc_clears_after_ho_detect() );
        execute( TC_ho_in_fail_no_detect() );
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index c29ccd4..a4f1f51 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -590,6 +590,7 @@
        TestHdlrParamsMSCPool mscpool,
        boolean         media_mgw_offer_ipv6,
        OCT3            last_used_eutran_plmn optional,
+       boolean         exp_fast_return, /* RR Release expected to contain 
CellSelectInd ? */
        boolean         expect_channel_mode_modify,
        uint3_t         expect_tsc optional
 };
@@ -628,6 +629,7 @@
        },
        media_mgw_offer_ipv6 := true,
        last_used_eutran_plmn := omit,
+       exp_fast_return := false,
        expect_channel_mode_modify := false,
        expect_tsc := omit
 }

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24679
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I227abc3793255e3916eba0dbc1460f46ec9926fe
Gerrit-Change-Number: 24679
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>
Gerrit-MessageType: merged

Reply via email to