Change in osmo-ttcn3-hacks[master]: bsc: Validate new 'srvcc fast-return' VTY command

pespin gerrit-no-reply at lists.osmocom.org
Thu Jun 17 14:05:09 UTC 2021


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 <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210617/06312d32/attachment.htm>


More information about the gerrit-log mailing list