pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved
bts: Fix sporadic 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, 10 insertions(+), 1 deletion(-)

diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 26fe18d..c681da9 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 ",
+ 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;
+ }
+ setverdict(fail, "Power level := ", l1h.ms_power_lvl, " does not ",
"match the signaled (RSL) power level := ", power_level);
Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
}
+ first_after_wait := true;

/* Signal a new power level via RSL for the next turn. */
if (power_level < 31) {

To view, visit change 41785. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I088b58bf76765c8a5bd167590c5afc5055fbdbf8
Gerrit-Change-Number: 41785
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>