<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23216">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ms: clarify delayed MS relase process related code and logging<br><br>Change-Id: Ieaea6ab07b4b2822bcf394f2d0e9298b9f3c5854<br>---<br>M src/gprs_ms.c<br>M tests/ms/MsTest.err<br>M tests/tbf/TbfTest.err<br>3 files changed, 16 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/16/23216/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gprs_ms.c b/src/gprs_ms.c</span><br><span>index ab1a067..8a06e1f 100644</span><br><span>--- a/src/gprs_ms.c</span><br><span>+++ b/src/gprs_ms.c</span><br><span>@@ -79,11 +79,10 @@</span><br><span>    .ms_active = gprs_default_cb_ms_active,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void ms_timeout(void *data)</span><br><span style="color: hsl(120, 100%, 40%);">+static void ms_release_timer_cb(void *data)</span><br><span> {</span><br><span>       struct GprsMs *ms = (struct GprsMs *) data;</span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DRLCMAC, LOGL_INFO, "Timeout for MS object, TLLI = 0x%08x\n",</span><br><span style="color: hsl(0, 100%, 40%);">-            ms_tlli(ms));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPMS(ms, DRLCMAC, LOGL_INFO, "Release timer timeout\n");</span><br><span> </span><br><span>     if (ms->timer.data) {</span><br><span>             ms->timer.data = NULL;</span><br><span>@@ -116,7 +115,7 @@</span><br><span> </span><br><span>  ms->imsi[0] = '\0';</span><br><span>       memset(&ms->timer, 0, sizeof(ms->timer));</span><br><span style="color: hsl(0, 100%, 40%);">-     ms->timer.cb = ms_timeout;</span><br><span style="color: hsl(120, 100%, 40%);">+ ms->timer.cb = ms_release_timer_cb;</span><br><span>       llc_queue_init(&ms->llc_queue);</span><br><span> </span><br><span>   ms_set_mode(ms, GPRS);</span><br><span>@@ -218,22 +217,26 @@</span><br><span>               ms_update_status(ms);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void ms_start_timer(struct GprsMs *ms)</span><br><span style="color: hsl(120, 100%, 40%);">+static void ms_release_timer_start(struct GprsMs *ms)</span><br><span> {</span><br><span>     if (ms->delay == 0)</span><br><span>               return;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   LOGPMS(ms, DRLCMAC, LOGL_DEBUG, "Schedule MS release in %u secs\n", ms->delay);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>       if (!ms->timer.data)</span><br><span>              ms->timer.data = ms_ref(ms);</span><br><span> </span><br><span>  osmo_timer_schedule(&ms->timer, ms->delay, 0);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void ms_stop_timer(struct GprsMs *ms)</span><br><span style="color: hsl(120, 100%, 40%);">+static void ms_release_timer_stop(struct GprsMs *ms)</span><br><span> {</span><br><span>    if (!ms->timer.data)</span><br><span>              return;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   LOGPMS(ms, DRLCMAC, LOGL_DEBUG, "Cancel scheduled MS release\n");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>        osmo_timer_del(&ms->timer);</span><br><span>   ms->timer.data = NULL;</span><br><span>    ms_unref(ms);</span><br><span>@@ -306,7 +309,7 @@</span><br><span>  ms->ul_tbf = tbf;</span><br><span> </span><br><span>     if (tbf)</span><br><span style="color: hsl(0, 100%, 40%);">-                ms_stop_timer(ms);</span><br><span style="color: hsl(120, 100%, 40%);">+            ms_release_timer_stop(ms);</span><br><span> </span><br><span>       ms_unref(ms);</span><br><span> }</span><br><span>@@ -327,7 +330,7 @@</span><br><span>     ms->dl_tbf = tbf;</span><br><span> </span><br><span>     if (tbf)</span><br><span style="color: hsl(0, 100%, 40%);">-                ms_stop_timer(ms);</span><br><span style="color: hsl(120, 100%, 40%);">+            ms_release_timer_stop(ms);</span><br><span> </span><br><span>       ms_unref(ms);</span><br><span> }</span><br><span>@@ -374,7 +377,7 @@</span><br><span>             ms_set_reserved_slots(ms, NULL, 0, 0);</span><br><span> </span><br><span>           if (ms_tlli(ms) != 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                   ms_start_timer(ms);</span><br><span style="color: hsl(120, 100%, 40%);">+                   ms_release_timer_start(ms);</span><br><span>  }</span><br><span> </span><br><span>        ms_update_status(ms);</span><br><span>@@ -386,7 +389,7 @@</span><br><span>          "Clearing MS object, TLLI: 0x%08x, IMSI: '%s'\n",</span><br><span>          ms_tlli(ms), ms_imsi(ms));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  ms_stop_timer(ms);</span><br><span style="color: hsl(120, 100%, 40%);">+    ms_release_timer_stop(ms);</span><br><span> </span><br><span>       ms->tlli = GSM_RESERVED_TMSI;</span><br><span>     ms->new_dl_tlli = ms->tlli;</span><br><span>diff --git a/tests/ms/MsTest.err b/tests/ms/MsTest.err</span><br><span>index 51ab68d..0fd56f0 100644</span><br><span>--- a/tests/ms/MsTest.err</span><br><span>+++ b/tests/ms/MsTest.err</span><br><span>@@ -52,7 +52,7 @@</span><br><span> Attaching TBF to MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=DL STATE=NULL)</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=UL STATE=NULL)</span><br><span> Detaching TBF from MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=DL STATE=NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-Timeout for MS object, TLLI = 0xffeeddbb</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xffeeddbb, IMSI=, TA=220, 0/0,) Release timer timeout</span><br><span> Destroying MS object, TLLI = 0xffeeddbb</span><br><span> Creating MS object, TLLI = 0xffeeddbb</span><br><span> Attaching TBF to MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=DL STATE=NULL)</span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index 0f802a7..5185c7d 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -1382,6 +1382,7 @@</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=RELEASING) free</span><br><span> PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000.</span><br><span> Detaching TBF from MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=RELEASING)</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0,) Schedule MS release in 10 secs</span><br><span> ********** DL-TBF ends here **********</span><br><span> MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0,) ********** DL-TBF starts here **********</span><br><span> MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0,) Allocating DL TBF</span><br><span>@@ -1398,6 +1399,7 @@</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Setting Control TS 4</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 10, dl_slots = 10</span><br><span> Attaching TBF to MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0, DL) Cancel scheduled MS release</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000123456)</span><br><span> TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) changes state from NULL to ASSIGN</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23216">change 23216</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/23216"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ieaea6ab07b4b2822bcf394f2d0e9298b9f3c5854 </div>
<div style="display:none"> Gerrit-Change-Number: 23216 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>