pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41785?usp=email )
Change subject: bts: Fix sporafic failure in TC_rsl_ms_pwr_ctrl ......................................................................
bts: Fix sporafic failure in TC_rsl_ms_pwr_ctrl
Fix following sporadic race condition: TTCN-MS IUTS-BTS TTCN-BSC | |<----CHAN_ACT------| |<--SACCH(A)-- | | | |<--MS_PWR_CTRL(B)- | |<--SACCH(B)---|
Change-Id: I088b58bf76765c8a5bd167590c5afc5055fbdbf8 --- M bts/BTS_Tests.ttcn 1 file changed, 12 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/41785/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 26fe18d..b2d7252 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -3834,6 +3834,7 @@ private function f_tc_rsl_ms_pwr_ctrl(charstring id) runs on ConnHdlr { var SacchL1Header l1h; var uint5_t power_level := 0; + var boolean first_after_wait := true;
f_l1_tune(L1CTL); RSL.clear; @@ -3849,10 +3850,18 @@ alt { [] as_l1_sacch_l1h(l1h, do_apply := false) { if (l1h.ms_power_lvl != power_level) { - setverdict(fail, "Power level := ", l1h.ms_power_lvl, "does not ", - "match the signaled (RSL) power level := ", power_level); - Misc_Helpers.f_shutdown(__BFILE__, __LINE__); + if (first_after_wait) { + /* It may happen that BTS transmits SACCH before it receives our RSL MS POWER CONTROL: */ + log("Power level := ", l1h.ms_power_lvl, " does not ", + "match the signaled (RSL) power level := ", power_level); + first_after_wait := false; + repeat; + } + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Power level := ", l1h.ms_power_lvl, " does not ", + "match the signaled (RSL) power level := ", power_level)); } + first_after_wait := true;
/* Signal a new power level via RSL for the next turn. */ if (power_level < 31) {