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) {

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41785?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I088b58bf76765c8a5bd167590c5afc5055fbdbf8
Gerrit-Change-Number: 41785
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to