Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Thu Jun 25 10:58:06 UTC 2020


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

Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch
......................................................................

bts: Introduce test TC_tx_power_start_ramp_down_bcch

Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12
---
M bts/BTS_Tests.ttcn
1 file changed, 118 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved



diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 9ebd952..a60a50f 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -173,6 +173,9 @@
 	port TRXC_CODEC_PT BTS_TRXC;
 	var integer g_bts_trxc_conn_id;
 
+	/* port to be initialized optionally to access BSC VTY */
+	port TELNETasp_PT BSCVTY;
+
 	timer g_Tguard;
 	timer g_Tmeas_exp := 2.0; /* >= 103 SACCH multiframe ~ 500ms */
 
@@ -374,6 +377,12 @@
 	f_vty_transceive(BSCVTY, "enable");
 }
 
+friend function f_connhdlr_init_vty_bsc() runs on ConnHdlr {
+	map(self:BSCVTY, system:BSCVTY);
+	f_vty_set_prompts(BSCVTY, "OsmoBSC");
+	f_vty_transceive(BSCVTY, "enable");
+}
+
 /* PCU socket may at any time receive a new INFO.ind */
 private altstep as_pcu_info_ind(PCUIF_CODEC_PT pt, integer pcu_conn_id,
 				out PCUIF_Message pcu_last_info) {
@@ -2024,12 +2033,34 @@
 	f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr);
 }
 
-/* Verify Tx power reduction and ramping up during BTS bring up */
-function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr {
+/* Wait until the BTS has reached full tx power (nominal tx power minus configured attenuation) */
+private function f_wait_ramp_up() runs on ConnHdlr return integer {
 	var L1ctlDlMessage l1_dl;
-	f_l1_tune(L1CTL);
-	RSL.clear;
+	var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp;
+	timer Tup := 10.0;
+	Tup.start;
+	alt {
+	[] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl {
+		var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level;
+		log("Received rx_level=", rx_lvl);
 
+		if (rx_lvl != max_rx_lvl) {
+			repeat;
+		}
+		Tup.stop;
+		}
+	[] L1CTL.receive { repeat; }
+	[] Tup.timeout {
+		Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+					log2str("Didn't reach full power ", max_rx_lvl));
+		}
+	}
+	return max_rx_lvl;
+}
+
+/* verify BTS ramps power up to full tx power (nominal tx power minus configured attenuation) */
+private function f_verify_ramp_up() runs on ConnHdlr {
+	var L1ctlDlMessage l1_dl;
 	var integer initial_rx_lvl := -1;
 	var integer last_rx_lvl := -1;
 	var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp;
@@ -2087,6 +2118,61 @@
 					log2str("No Tx power increase during whole ramp up: ",
 						initial_rx_lvl , " -> ", last_rx_lvl));
 	}
+}
+
+/* verify BTS ramps power down to rx_level 0 */
+private function f_verify_ramp_down(integer max_rx_lvl) runs on ConnHdlr {
+	var L1ctlDlMessage l1_dl;
+	var integer last_rx_lvl := max_rx_lvl;
+
+	timer Tdown := 5.0;
+	Tdown.start;
+	alt {
+	[] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl {
+		var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level;
+		log("Received rx_level=", rx_lvl);
+
+		/* received Rx level bigger than maximum allowed power by CN */
+		if (rx_lvl > max_rx_lvl) {
+			Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+						log2str("Detected Tx power higher than full power: ",
+							rx_lvl , " > ", max_rx_lvl));
+		}
+
+		/* Make sure it never increases, since we are rumping down */
+		if (last_rx_lvl < rx_lvl) {
+			Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+						log2str("Detected Tx power increase during ramp up: ",
+							last_rx_lvl , " -> ", rx_lvl));
+		}
+
+		last_rx_lvl := rx_lvl;
+		if (last_rx_lvl != 0) {
+			repeat;
+		}
+		/* we reached power level 0, we are done */
+		Tdown.stop;
+		}
+	[] L1CTL.receive { repeat; }
+	[] Tdown.timeout { }
+	}
+
+	/* We didn't increase tx power during ramp down */
+	if (max_rx_lvl > last_rx_lvl) {
+		log("Tx power decreased during ramp down: ", max_rx_lvl , " -> ", last_rx_lvl);
+	} else {
+		Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+					log2str("No Tx power decrease during whole ramp down: ",
+						max_rx_lvl , " -> ", last_rx_lvl));
+	}
+}
+
+/* Verify Tx power reduction and ramping up during BTS bring up */
+function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr {
+	f_l1_tune(L1CTL);
+	RSL.clear;
+
+	f_verify_ramp_up();
 
 	setverdict(pass);
 }
@@ -2101,6 +2187,33 @@
 	Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
 }
 
+/* Verify Tx power reduction and ramping downd uring BTS bring shutdown due to Abis link failure */
+function f_TC_tx_power_start_ramp_down_bcch(charstring id) runs on ConnHdlr {
+	f_connhdlr_init_vty_bsc();
+
+	f_l1_tune(L1CTL);
+	RSL.clear;
+
+	/* Wait until BTS is started and at full power */
+	var integer max_rx_lvl := f_wait_ramp_up();
+	log("Reached nominal level ", max_rx_lvl, ", shutting down OML link");
+
+	f_vty_transceive(BSCVTY, "drop bts connection 0 oml");
+	f_verify_ramp_down(max_rx_lvl);
+
+	setverdict(pass);
+}
+testcase TC_tx_power_start_ramp_down_bcch() runs on test_CT {
+	var ConnHdlr vc_conn;
+	var ConnHdlrPars pars;
+	f_init();
+	pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN));
+	vc_conn := f_start_handler(refers(f_TC_tx_power_start_ramp_down_bcch), pars,
+				   pcu_comp := false, trxc_comp := true);
+	vc_conn.done;
+	Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
+}
+
 function f_check_meas_bs_power_level(integer level) runs on ConnHdlr {
 	timer T := 8.0;
 	T.start;
@@ -6519,6 +6632,7 @@
 	execute( TC_meas_res_sign_sdcch8() );
 	execute( TC_meas_res_sign_tchh_toa256() );
 	execute( TC_tx_power_start_ramp_up_bcch() );
+	execute( TC_tx_power_start_ramp_down_bcch() );
 	execute( TC_rsl_bs_pwr_static_ass() );
 	execute( TC_rsl_bs_pwr_static_power_control() );
 	execute( TC_rsl_ms_pwr_ctrl() );

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980
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: I895d69394a0123ae32b336c9ffaff615ba657f12
Gerrit-Change-Number: 18980
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
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/20200625/116c2f00/attachment.htm>


More information about the gerrit-log mailing list