fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42067?usp=email )
Change subject: bts: fix TC_rsl_ms_pwr_dyn_ass_updown: simulate a good C/I value ......................................................................
bts: fix TC_rsl_ms_pwr_dyn_ass_updown: simulate a good C/I value
Now that we populate the UL SACCH cache in advance, trxcon is sending ms-pwr-lvl 7 in the first UL SACCH block (as expected). This suddenly makes the testcase fail, because now the MS power loop is perfectly happy about the received input values and does not order any changes to the current MS power level anymore, contrary to our expectations.
Why? Short answer: because of C/I (curr 6, avg 6) being outside of the good range (thresh 13..17). The MS power loop intentionally avoids reducing Tx power because that would potentially degrade the link quality (C/I) even further. Solution: let's order fake_trx.py to simulate a C/I value that is within the thresholds.
This alone does not fix the testcase yet, another fix follows.
Change-Id: I8926fc925e930bc2703210931b613988161a72da Related: c246f207 ("bts: f_est_dchan(): populate UL SACCH cache") Related: OS#6945 --- M bts/BTS_Tests.ttcn 1 file changed, 8 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/67/42067/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 169b59b..c975944 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -749,6 +749,11 @@ ret := f_TRXC_transceive(BTS_TRXC, g_bts_trxc_conn_id, ts_TRXC_FAKE_TIMING(toffs256)); }
+private function f_trxc_fake_ci(int16_t ci) runs on ConnHdlr { + var TrxcMessage ret; + ret := f_TRXC_transceive(BTS_TRXC, g_bts_trxc_conn_id, ts_TRXC_FAKE_CI(ci)); +} + /* first function started in ConnHdlr component */ private function f_handler_init(void_fn fn, charstring id, ConnHdlrPars pars) runs on ConnHdlr { @@ -3136,6 +3141,9 @@ var uint5_t pwr_var := 7; var SacchL1Header l1h;
+ /* Simulate a good C/I value of 15 dB (default thresh 13..17 dB). + * This enables the MS power loop to decrease Tx power (if needed). */ + f_trxc_fake_ci(150); /* 15 dB == 150 cB */ f_trxc_fake_rssi(rxlev2dbm(10)); f_l1_tune(L1CTL); RSL.clear;