fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41899?usp=email )
Change subject: bts: TC_rsl_chan_initial_ta: fix sporadic failures ......................................................................
bts: TC_rsl_chan_initial_ta: fix sporadic failures
It may happen that an UL SACCH block is received by the BTS before a DL SACCH block is generated and delivered to the testcase. In this case, the Timing Advance control loop may update the initial TA value that was set during RSL CHANnel ACTIVation.
By default, trxcon transmits UL SACCH blocks with TA=0, which is exactly what triggers the TA control loop in this situation.
To avoid this, we explicitly signal the expected TA value to trxcon by pre-populating the UL SACCH cache. This is done by sending a DATA.req containing a measurement report in advance, before establishing DCCH, so that subsequent UL SACCH blocks carry the correct TA and do not activate the control loop.
Additionally, take the opportunity to add missing f_L1CTL_PARAM(). This compensates for the artificial delay introduced by f_trxc_fake_toffs256(), further reducing the risk of triggering the TA control loop.
Change-Id: Iebb043ccc710750dff937e2281c23d343b85bda1 Related: OS#6919 --- M bts/BTS_Tests.ttcn 1 file changed, 7 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/99/41899/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index e574cd4..3403863 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -3891,6 +3891,13 @@
/* tell fake_trx to use a given timing offset for all bursts */ f_trxc_fake_toffs256(ta_to_test*256); + /* tell trxcon to use a given TA for UL bursts */ + g_pars.l1_pars.ms_actual_ta := ta_to_test; + f_L1CTL_PARAM(L1CTL, g_pars.l1_pars.ms_actual_ta, + g_pars.l1_pars.ms_power_level); + /* tell trxcon to use a given TA in UL SACCH blocks + * this is achieved by populating UL SACCH cache before doing f_l1ctl_est_dchan() */ + f_send_meas_rep(ts_MeasurementResults);
f_est_dchan(more_ies :={valueof(t_RSL_IE(RSL_IE_TIMING_ADVANCE, RSL_IE_Body:{timing_adv := ta_to_test}))} );