<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23910">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Clarify, document Assignment related timers<br><br>Related: OS#3928<br>Change-Id: Iad31a5c6f83cd78793adf05a6af782ceacae8b11<br>---<br>M src/bts.cpp<br>M src/gprs_pcu.c<br>M src/tbf.cpp<br>M src/tbf_dl.cpp<br>4 files changed, 12 insertions(+), 7 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/10/23910/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.cpp b/src/bts.cpp</span><br><span>index 449e1ac..bcf4d1b 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -602,8 +602,10 @@</span><br><span> </span><br><span>        LOGP(DRLCMAC, LOGL_DEBUG, "Got IMM.ASS confirm for TLLI=%08x\n", tlli);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   if (dl_tbf->m_wait_confirm)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (dl_tbf->m_wait_confirm) {</span><br><span style="color: hsl(120, 100%, 40%);">+              /* Transition to FLOW in gprs_rlcmac_tbf::handle_timeout() when timer expires */</span><br><span>             T_START(dl_tbf, T0, -2002, "assignment (AGCH)", true);</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span> </span><br><span>        return 0;</span><br><span> }</span><br><span>diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c</span><br><span>index 226b861..3875e09 100644</span><br><span>--- a/src/gprs_pcu.c</span><br><span>+++ b/src/gprs_pcu.c</span><br><span>@@ -37,8 +37,8 @@</span><br><span>      { .T=PCU_TDEF_SI_CACHE_ALIVE,      .default_val=5,  .unit=OSMO_TDEF_S,   .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 },</span><br><span>   { .T=-101,  .default_val=30,  .unit=OSMO_TDEF_S,  .desc="BSSGP (un)blocking procedures timer (s)",  .val=0 },</span><br><span>      { .T=-102,  .default_val=30,  .unit=OSMO_TDEF_S,  .desc="BSSGP reset procedure timer (s)",          .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=-2000, .default_val=2,   .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)",            .val=0 },</span><br><span style="color: hsl(0, 100%, 40%);">- { .T=-2001, .default_val=2,   .unit=OSMO_TDEF_S,  .desc="PACCH assignment timer (s)",               .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+       { .T=-2000, .default_val=2,   .unit=OSMO_TDEF_MS, .desc="Delay release of UL TBF after tx Packet Access Reject (PACCH) (ms)", .val=0 },</span><br><span style="color: hsl(120, 100%, 40%);">+     { .T=-2001, .default_val=2,   .unit=OSMO_TDEF_S,  .desc="PACCH assignment timeout (s)",               .val=0 },</span><br><span>    { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 },</span><br><span>      { .T=-2030, .default_val=60,  .unit=OSMO_TDEF_S,  .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */</span><br><span>     { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)",  .val=0 },</span><br><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index b51e7de..672146f 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -775,7 +775,7 @@</span><br><span> </span><br><span>   LOGPTBF(this, LOGL_DEBUG, "timer 0 expired. cur_fn=%d\n", current_fn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    /* assignment */</span><br><span style="color: hsl(120, 100%, 40%);">+      /* PACCH assignment timeout (see timers X2000, X2001) */</span><br><span>     if ((state_flags & (1 << GPRS_RLCMAC_FLAG_PACCH))) {</span><br><span>               if (state_is(GPRS_RLCMAC_ASSIGN)) {</span><br><span>                  LOGPTBF(this, LOGL_NOTICE, "releasing due to PACCH assignment timeout.\n");</span><br><span>@@ -785,6 +785,7 @@</span><br><span>                  LOGPTBF(this, LOGL_ERROR, "Error: TBF is not in assign state\n");</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* Finish waiting after IMM.ASS confirm timer for CCCH assignment (see timer X2002) */</span><br><span>       if ((state_flags & (1 << GPRS_RLCMAC_FLAG_CCCH))) {</span><br><span>                gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(this);</span><br><span>                dl_tbf->m_wait_confirm = 0;</span><br><span>@@ -965,9 +966,11 @@</span><br><span>        bitvec_free(packet_access_rej);</span><br><span>      ul_ass_state = GPRS_RLCMAC_UL_ASS_NONE;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     /* Start Tmr only if it is UL TBF */</span><br><span style="color: hsl(0, 100%, 40%);">-    if (direction == GPRS_RLCMAC_UL_TBF)</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Start release only if it is UL TBF */</span><br><span style="color: hsl(120, 100%, 40%);">+      if (direction == GPRS_RLCMAC_UL_TBF) {</span><br><span style="color: hsl(120, 100%, 40%);">+                /* tbf_free() called in gprs_rlcmac_tbf::handle_timeout */</span><br><span>           T_START(this, T0, -2000, "reject (PACCH)", true);</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span> </span><br><span>        return msg;</span><br><span> </span><br><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index dd5d0f2..fc53c84 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -603,7 +603,7 @@</span><br><span>           /* change state */</span><br><span>           TBF_SET_ASS_ON(this, GPRS_RLCMAC_FLAG_PACCH, true);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-         /* start timer */</span><br><span style="color: hsl(120, 100%, 40%);">+             /* Start timer, expiry in gprs_rlcmac_tbf::handle_timeout tbf_free()s the TBF */</span><br><span>             T_START(this, T0, -2001, "assignment (PACCH)", true);</span><br><span>      } else {</span><br><span>             LOGPTBFDL(this, LOGL_DEBUG, "Send dowlink assignment on PCH, no TBF exist (IMSI=%s)\n",</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23910">change 23910</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/+/23910"/><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: Iad31a5c6f83cd78793adf05a6af782ceacae8b11 </div>
<div style="display:none"> Gerrit-Change-Number: 23910 </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>